一尘不染

如何在Java中创建多维ArrayList?

java

无论如何,我对ArrayLists还是很陌生,但是我在这个项目中需要它们,如果你们能帮助我,我将不胜感激!
基本上,我需要创建一个多维数组列表来保存字符串值。我知道如何使用标准数组来执行此操作,public static String[][] array = {{}}但是这样做并不好,因为我不知道数组的大小,我所知道的只是它会有多少个尺寸。

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

在此先感谢,
安迪

编辑/更新

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


阅读 1583

收藏
2020-03-13

共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);
    }
}
2020-03-13