创建大量数组

时间:2010-03-20 09:03:00

标签: java arrays

如何创建30个阵列(与char []无关的类型无关紧要)?在我看来,手工制作它们并不是一个好主意。我想使用“for”循环来做到这一点,但我应该如何指定标识符?

3 个答案:

答案 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)));
}