具有2列的Java ArrayList

时间:2017-12-03 20:35:10

标签: java arraylist 2d

我需要使用数组列表,因为我不知道需要多少行,但我知道我需要2列。我不确定如何创建这样的数组列表,添加到两列并从两列读取数据。两列都包含整数。

我见过一些建议:

ArrayList<Arraylist<Integer>> name = new ArrayList<ArrayList<Integer>>();

但我可以找到如何添加到两列的解释。

我也看到了:

ArrayList<Integer[][]> name = new ArrayList<Integer[][]>();

和方括号的位置和数量的不同变化。 感谢。

6 个答案:

答案 0 :(得分:1)

Java是面向对象的语言,为什么不创建ArrayList<Column>? 您可以创建一个类Column来满足您的要求:它可以包含setter和getter,如果您需要支持除Integer以外的其他类型,您可以对其进行生成。例如:

class Column<T> {
    private T value;

    public Column(T value) {
        this.value = value;
    }

    public getValue() {
        return this.value;
    }
}

然后你声明:

List<Column<Integer>> list = new LinkedList<>();
list.add(new Column<Integer>(5));
System.out.println(list.get(0).getValue())

答案 1 :(得分:0)

你可以尝试

  • 一张地图并使用该键和值来保存值
  • 元组列表
  • 您建议的列表清单

你没有提供足够的信息来确定你真正想要做什么,但是如果你必须使用List作为基础,我通常会使用一个自定义元组列表列表,每个对象都有两个值。< / p>

答案 2 :(得分:0)

这样的事情:

public MyObject {
   Integer integer1;
   Integer integer2;
}


List<MyObject> myObjList = new ArrayList<>();

MyObject mo = new MyObject(){
...

myObjList.add(mo);

答案 3 :(得分:0)

您可以尝试创建一个名为Row的简单POJO类,并将两个变量作为column1和column2。然后将此Row对象添加到列表中。

答案 4 :(得分:0)

示例创建二维结构如何使用与您类似的列表:

   List<List<Integer>> names = new ArrayList<>();

        List<Integer> row = new ArrayList<>();

        row.add(1); // first column
        row.add(2); // second column

        names.add(row); // add row with column


        System.out.println(names.get(0).get(0)); // get first column from first row
        System.out.println(names.get(0).get(1)); // get second column form first row

但最好的方法是使用像这样的Custom对象:

class CustomRow {

private int col1;
private int col2;

// getters and setters

}


List<CustomRow> tables;
CustomRow cr = new CustomRow();
cr.setCol1(1);
cr.setCol2(2);
tables.add(cr);

答案 5 :(得分:-1)

您基本上需要创建一个包含Integer类型的ArrayList的ArrayList。然后,您可以将其中两个ArrayLists添加到主数组列表中。

int main()
{
    const int MAX = 10;
    string a = "ABCD";
    string arr[10];

    permute(arr, a, 0, a.size(), 0);

    return 0;
}

void permute(string arr[], string wrd, int firstLetter, int lastLetter, int it)
{
    if (firstLetter == lastLetter)
        *arr = wrd;
    else
    {
            swap(wrd[firstLetter], wrd[it]);
            permute(arr, wrd, firstLetter + 1, lastLetter, it++);
    }
}

基于这个答案:

How do I declare a 2D String arraylist?