Java 如何使未填充的整数数组不打印出0?
打印此文件:Java 如何使未填充的整数数组不打印出0?,java,Java,打印此文件: 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); } 那么,如何避免不打印未填充的元素呢?Java中的原语不能为空。当您创建一个基本整数而不为其
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);
}
那么,如何避免不打印未填充的元素呢?Java中的原语不能为空。当您创建一个基本整数而不为其赋值时 您可以创建一个可为null的
整数
数组,然后使用if查看它们是否为null,如下所示:
23
123
255
0
0
这些职位并非空缺——它们包含
0
int[]arr=new int[3]代码>?请注意,使用Integer
而不是int
是一个巨大的性能缺陷。但是,没有其他方法可以判断是否设置了值。除了可以选择应用程序中不能出现的特殊值之外。例如一个-1
左右。然后可以使用-1
初始化数组,而不是像数组那样使用0
初始化数组
并坚持使用int
@Zabuza指出这一点很好,但我想知道它在多大程度上会变得引人注目。如果Arrays.fill()
的操作将放弃使用装箱原语的开销。最好使用0
作为int[]
的魔法值,如果0
在应用程序中有效,则将其作为-1
(不能出现的魔法值)放入数组中。这样,您就可以通过使用另一个指示符值有效地使用默认初始化0
。需要一个用于get
和set
访问的方法包装器,但对于大数据来说,这可能是有利的。
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);
}
}
}