如何在java中将ArrayList转换为Array 2维

时间:2018-03-29 04:15:04

标签: java arrays arraylist

我想将ArrayList转换为Array 2-Dimension

我有以下代码:

ArrayList<String> arrayList=new ArrayList();
arrayList.add("A")
arrayList.add("B")
arrayList.add("C")
arrayList.add("D")
arrayList.add("E")
arrayList.add("F")

int nSize=0,n3item=0, remain=0;
nSize=arrayList.size();
n3item=nSize/3;
remain=nSize%3;
String[][] array[n3item][3]

I want to convert ArrayList to array for example
array[0][1]="A"
array[0][2]="B"
array[0][3]="C"
array[1][1]="D"
array[1][2]="E"
array[1][3]="F"

现在我没有办法解决这个问题。 如果保持不是0.如何解决这个问题 我需要你的帮助。

感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用简单的嵌套for循环来实现此目的。

int numCol = 3;
int numRow = (int) Math.ceil(arrayList.size() / ((double) numCol));
String[][] array = new String[numRow][numCol];

int i, j;
for (i = 0; i < numRow; i++) {
    for (j = 0; j < 3 && (i * numCol + j) < arrayList.size(); j++) {
        array[i][j] = arrayList.get((i * numCol) + j);
    }
}
通过将列表中元素数量的 ceil 除以所需列数来找到

numRow。 例如 - 当arraylist有7个元素时,numRow ceil(7 / 3.0)= 3

这里的主要技巧是内部for循环条件(i * numCol + j) < arrayList.size()。它使我们能够终止你提到的条件remain != 0的循环。

答案 1 :(得分:0)

尝试思考,如何使用arraylist值填充2D数组。您需要使用嵌套循环将值分配到2D数组中。外循环将迭代行,内循环将值填充到每个1D数组中。

int index = 0;
for(int i = 0; i < n3item; i++) {
    for(int j = 0; j < 3; j++) {
        array[i][j] = arrayList.get(index);
        index++;
    }
}