int[] arr = new int[5];
arr[0] = 23;
arr[1] = 123;
arr[2] = 255;
printArray(arr);
}
static void printArray(int...arr) {
for (int T : arr)
System.out.println(T);
}
23
123
255
0
0
那麼如何避免不打印未填充的元素嗎?
int[] arr = new int[5];
arr[0] = 23;
arr[1] = 123;
arr[2] = 255;
printArray(arr);
}
static void printArray(int...arr) {
for (int T : arr)
System.out.println(T);
}
23
123
255
0
0
那麼如何避免不打印未填充的元素嗎?
Java中的原語不能爲空。當你創建一個原始整數並且不給它賦值時,it will default to 0
。
您可以使Integer
秒的數組,是可爲空,然後使用if,看看他們是否是空的,像這樣:
public static void main(String[] args) {
Integer[] arr = new Integer[5];
arr[0] = 23;
arr[1] = 123;
arr[2] = 255;
printArray(arr);
}
public static void printArray(Integer... arr){
for(Integer t : arr) {
if (t != null) {
System.out.println(t);
}
}
}
請注意,使用'Integer'而不是'int'是一個巨大的性能缺陷。但是,沒有其他方法可以判斷是否設置了值。除了可以選擇在應用程序中不能出現的特殊值之外。例如'-1'左右。然後可以用'-1'而不是'0'來初始化數組,例如'Arrays.fill(array,-1);'並且用'int'來保存。 – Zabuza
@Zabuza很好指出,但我想知道什麼規模會變得明顯。如果'Arrays.fill()'的操作會放棄使用盒裝原語的開銷。 – Ivar
是的。使用'0'作爲'int []'的魔術值*可能會更好,如果應用中的'0'有效,則將其作爲'-1'(*魔法值*)不能發生)在數組中。通過這種方式,您可以使用另一個*指標值*有效地使用默認初始值'0'。需要一個「get」和「set」訪問的方法包裝器,但對於大數據來說,這可能會變得有利。 – Zabuza
那些位置不空缺 - 它們含有'0' 。 –
'int [] arr = new int [3];'? –