【发布时间】:2010-10-09 06:39:28
【问题描述】:
我知道如何正常填写,但我可以发誓您可以像 a[0] = {0,0,0,0}; 这样填写你是怎么做到的?我确实尝试了 Google,但没有得到任何帮助。
【问题讨论】:
-
你应该问的真正问题是如何使这项工作:a[0] = someFunction(4, 0);。因此,选择的“正确”答案没有用。
我知道如何正常填写,但我可以发誓您可以像 a[0] = {0,0,0,0}; 这样填写你是怎么做到的?我确实尝试了 Google,但没有得到任何帮助。
【问题讨论】:
查看Arrays.fill 方法。
int[] array = new int[4];
Arrays.fill(array, 1); // [1, 1, 1, 1]
【讨论】:
System类不同,java.util.Arrays是Java实现的类,看源码发现它与普通循环没有区别。
您也可以将其作为声明的一部分:
int[] a = new int[] {0, 0, 0, 0};
【讨论】:
Arrays.fill()。该方法针对不同的数据类型进行了重载,甚至还有一个仅填充指定索引范围的变体。
【讨论】:
在 Java-8 中,您可以使用 IntStream 生成要重复的数字流,然后将其转换为数组。这种方法产生了一个适合在初始化器中使用的表达式:
int[] data = IntStream.generate(() -> value).limit(size).toArray();
在上面,size 和 value 是产生您想要重复的项目数和重复值的表达式。
【讨论】:
Arrays.fill(arrayName,value);
在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]+" ");
}
输出
5 6 9 2 10
0 0 0 0 0
【讨论】:
可以使用new Object {} 语法初始化数组。
例如,String 的数组可以通过以下任一方式声明:
String[] s = new String[] {"One", "Two", "Three"};
String[] s2 = {"One", "Two", "Three"};
原语也可以通过以下方式进行类似的初始化:
int[] i = new int[] {1, 2, 3};
int[] i2 = {1, 2, 3};
或者一些Object的数组:
Point[] p = new Point[] {new Point(1, 1), new Point(2, 2)};
所有关于Java数组的细节都写在Chapter 10: ArraysThe Java Language Specifications, Third Edition中。
【讨论】:
Java 中的数组元素在创建时被初始化为默认值。对于数字,这意味着它们被初始化为 0,对于引用,它们是 null,对于布尔值,它们是 false。
要使用其他内容填充数组,您可以使用 Arrays.fill() 或作为声明的一部分
int[] a = new int[] {0, 0, 0, 0};
在 Java 中没有像某些脚本语言那样用算术级数填充数组的快捷方式。
【讨论】:
float[] ave = new float[] {(float) 1.2, (float) 4.3, (float) 10.2}
int[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
【讨论】: