如何用Java填充数组?

Wil*_*iam 78 java arrays

我知道如何正常地做,但我可以发誓,你可以填写像[0] = {0,0,0,0}; 你是怎么做到的?我确实尝试过Google,但我没有得到任何帮助.

cdm*_*kay 252

查看Arrays.fill方法.

int[] array = new int[4];
Arrays.fill(array, 0);
Run Code Online (Sandbox Code Playgroud)

  • +1因为我不知道Arrays.fill()方法.我总是用for循环做到这一点.:d (21认同)
  • @GrantGalitz我其实并不相信,你有文章或smt的链接吗?因为与`System`类不同,`java.util.Arrays`是由Java实现的类,并且通过源查看它与正常循环没有什么不同**. (7认同)
  • int的数组初始化为0,因此在上面的示例中不需要第二行. (7认同)
  • @ PatrickBrinich-Langlois:为了表明你的归属意图,它仍然值得. (5认同)

Cha*_*rch 61

您也可以将其作为声明的一部分:

int[] a = new int[] {0, 0, 0, 0};
Run Code Online (Sandbox Code Playgroud)

  • int [] a = new int [4]会完成同样的事情,因为0是默认值. (10认同)
  • 或者int [] a = {0,0,0,0}; .如果未在声明中立即使用常量,则只需要新的int []. (4认同)
  • 当你有一个大数组时,这没用.@ cdmckay的答案更好. (4认同)

Zac*_*ena 16

Arrays.fill().该方法针对不同的数据类型进行了重载,甚至还存在仅填充指定范围的索引的变体.


das*_*ght 15

在Java-8中,您可以使用它IntStream来生成要重复的数字流,然后将其转换为数组.此方法生成适用于初始化程序的表达式:

int[] data = IntStream.generate(() -> value).limit(size).toArray();
Run Code Online (Sandbox Code Playgroud)

以上,size并且value是产生要TOT重复和正在重演价值的物品的数量表达.

演示.


小智 10

Arrays.fill(arrayName,value);
Run Code Online (Sandbox Code Playgroud)

在java中

int arrnum[] ={5,6,9,2,10};
for(int i=0;i<arrnum.length;i++){
  System.out.println(arrnum[i]+" ");
}
Arrays.fill(arrnum,0);
for(int i=0;i<arrnum.length;i++){
  System.out.println(arrnum[i]+" ");
}
Run Code Online (Sandbox Code Playgroud)

产量

5 6 9 2 10
0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)


coo*_*ird 5

可以使用new Object {}语法初始化数组.

例如,String可以通过以下任一方式声明数组:

String[] s = new String[] {"One", "Two", "Three"};
String[] s2 = {"One", "Two", "Three"};
Run Code Online (Sandbox Code Playgroud)

也可以通过以下方式类似地初始化基元:

int[] i = new int[] {1, 2, 3};
int[] i2 = {1, 2, 3};
Run Code Online (Sandbox Code Playgroud)

或者一些数组Object:

Point[] p = new Point[] {new Point(1, 1), new Point(2, 2)};
Run Code Online (Sandbox Code Playgroud)

关于Java数组的所有细节是写出来的第10章:数组Java语言规范,第三版.