Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使未填充的整数数组不打印出0?_Java - Fatal编程技术网

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);
        }
    }
}