我想将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.如何解决这个问题 我需要你的帮助。
感谢。
答案 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++;
}
}