如何在 Java 中创建多维 ArrayList?

新手上路,请多包涵

无论如何,我对 ArrayLists 还很陌生,但是我正在做的这个项目需要它们,如果你们能帮助我,我将不胜感激!

基本上,我需要创建一个多维 ArrayList 来保存 String 值。我知道如何使用标准数组来执行此操作,例如 public static String[][] array = {{}} 但这并不好,因为我不知道我的数组的大小,我只知道它将有多少维度。

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

提前致谢,

安迪

编辑/更新


也许使用变量调整大小或定义标准数组会更容易?但我不知道?

不过,使用我最初对 ArrayList 的想法可能更容易……我只需要一个完整的示例代码来创建一个 2D ArrayList 并在不知道索引的情况下将示例值添加到两个维度。

原文由 Andy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 705
2 个回答

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);
    }
}

原文由 Jacob Tomaw 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果你被允许使用预定义的 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 类。

原文由 ShaneTheKing 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题