如何创建30个阵列(与char []无关的类型无关紧要)?在我看来,手工制作它们并不是一个好主意。我想使用“for”循环来做到这一点,但我应该如何指定标识符?
答案 0 :(得分:7)
我建议您阅读tutorial on arrays。它涵盖了基本的数组操作,包括创建“多维”数组。
char[][] arr = new char[30][100];
现在您有arr[0]
,arr[1]
,...,arr[29]
,每个都是100 char
的数组。
此代码段显示了数组初始化的示例以及如何访问它们:
int[][] m = {
{ 1, 2, 3 },
{ 4, 5, 6, 7, 8 },
{ 9 }
};
System.out.println(m[1][3]); // prints "7"
m[2] = new int[] { -1, -2, -3 };
System.out.println(m[2][1]); // prints "-2";
这也表明Java没有真正的多维数组; m
实际上是一个数组数组。这意味着它们可以具有不同的长度(“锯齿状”阵列),并且可以彼此独立地操纵。
您还应该熟悉java.util.Arrays
。它提供了基本数组操作的实用方法(转换为字符串,复制,排序,二进制搜索等)。
import java.util.Arrays;
// ...
int[][] table = new int[3][];
for (int i = 0; i < table.length; i++) {
table[i] = new int[i + 1];
for (int j = 0; j < table[i].length; j++) {
table[i][j] = (i * 10) + j;
}
}
System.out.println(Arrays.deepToString(table));
// prints "[[0], [10, 11], [20, 21, 22]]"
答案 1 :(得分:2)
您始终可以创建数组数组:
char[][] arr = new char[30][];
for (int i=0; i<30; i++) {
arr[i] = new char[50];
}
答案 2 :(得分:0)
我认为最简单的方法是使用ArrayList
您可以根据需要添加任意数量的项目:
java.util.ArrayList<char[]> array = new java.util.ArrayList<char[]>();
//set
for(int i=0;i<100;i++){
array.add(new char[]{'a','b''c'});
}
//get
for(int i=0;i<array.size();i++){
System.out.println(new String(array.get(i)));
}