有没有办法同时执行以下操作?
static final int UN = 0; // uninitialized nodes
int[] arr;
// ... code ...
arr = new int[size];
for (int i = 0; i < 5; i++) {
arr[i] = UN;
}
基本上,一旦我知道它的大小,我想声明arr
并将其初始化为UN
而不必循环。所以像这样:
int[] arr = new int[size] = UN;
这可能吗?
感谢。
答案 0 :(得分:4)
Arrays.fill(arr, UN);
答案 1 :(得分:1)
您无需使用0
初始化它们。 int
默认为0
。
只是
int[] array = new int[size];
就够了。它为您提供给定长度的零数组。如果它是Integer[]
,则它将是null
s。
答案 2 :(得分:1)
嗯,对于对象(或带有自动装箱的图元),您可以执行以下操作:
int count = 20;
final int UN = 0;
Integer[] values = Collections.nCopies(count, UN).toArray(new Integer[count]);
缺点是你必须使用基元的对象形式(因为集合必须是对象),并且将构造一个单独的List然后扔掉。这将允许您将数组创建为一个语句。
答案 3 :(得分:0)
不,不是标准库。但是,如果您编写自己的函数,则可以在单个语句中轻松完成(不是指令;它们是不同的)。我看起来像String[][] strings = Arrayu.fill(new String[x][y], "");
这是一个link。但是那里也有一些垃圾;我刚刚发布了一份当前来源的副本而没有清理它。
答案 4 :(得分:-1)
哎呀,更好地阅读你的问题:
你可以像这样初始化一个数组
int[] arr = new int[] {UN, UN, UN, UN, UN};
但是当然,如果你不知道编译时的大小,那么你必须进行for循环。第二种技术是不可能的。
答案 5 :(得分:-1)
没有
下一个问题?
答案 6 :(得分:-1)
int arr[] = { 0, 0, 0, 0, 0 };