如何在Java中创建多维数组列表?

2022-09-01 01:26:45

无论如何,我对ArrayLists相当陌生,但我需要它们来做这个项目,如果你们能帮助我,我会非常感激!
基本上,我需要创建一个多维 ArrayList 来保存 String 值。我知道如何使用标准数组来做到这一点,就像这样,但这不好,因为我不知道我的数组的大小,我只知道它将有多少个扩展。public static String[][] array = {{}}

所以,如果你们知道如何制作一个“具有2/+维数的动态可调整大小的数组”,请你能告诉我吗?

提前致谢,
安迪

编辑/更新


也许使用变量调整大小或定义标准数组会更容易?但我不知道?
不过,使用我最初的 ArrayList 想法可能更容易......我需要的只是一个完整的示例代码来创建一个2D ArrayList,并在不知道索引的情况下将示例值添加到两个维度。


答案 1

ArrayList<ArrayList<String>> array = new ArrayList<ArrayList<String>>();

根据您的要求,您可以使用如下所示的泛型类来简化访问:

import java.util.ArrayList;

class TwoDimentionalArrayList<T> extends ArrayList<ArrayList<T>> {
    public void addToInnerArray(int index, T element) {
        while (index >= this.size()) {
            this.add(new ArrayList<T>());
        }
        this.get(index).add(element);
    }

    public void addToInnerArray(int index, int index2, T element) {
        while (index >= this.size()) {
            this.add(new ArrayList<T>());
        }

        ArrayList<T> inner = this.get(index);
        while (index2 >= inner.size()) {
            inner.add(null);
        }

        inner.set(index2, element);
    }
}

答案 2

如果允许您使用预定义的 Java 类,则可以执行以下操作:

private static ArrayList<ArrayList<String>> biDemArrList = new ArrayList<ArrayList<String>>();

然后,您可以添加新元素,例如:

ArrayList<String> temp = new ArrayList<String>(); // added () 
temp.add("Hello world.");
biDemArrList.add(temp);

希望你能理解我的意思和正在发生的事情。另外,您需要导入java.util.ArrayList;为此,如果您正在使用Java类。


推荐