如何检查数组是否为空/空?

我有int没有元素的数组,我正在尝试检查它是否为空。


例如,为什么下面的代码中的if语句从不正确?


int[] k = new int[3];


if(k==null)

{

    System.out.println(k.length);

}


慕田峪9158850
浏览 669回答 3
3回答

牧羊人nacy

null数组和空数组之间有一个关键的区别。这是对的测试null。int arr[] = null;if (arr == null) {&nbsp; System.out.println("array is null");}这里的“空”没有官方含义。我选择将空定义为具有0个元素:arr = new int[0];if (arr.length == 0) {&nbsp; System.out.println("array is empty");}如果所有元素都是,则“空”的另一种定义是null:Object arr[] = new Object[10];boolean empty = true;for (int i=0; i<arr.length; i++) {&nbsp; if (arr[i] != null) {&nbsp; &nbsp; empty = false;&nbsp; &nbsp; break;&nbsp; }}要么Object arr[] = new Object[10];boolean empty = true;for (Object ob : arr) {&nbsp; if (ob != null) {&nbsp; &nbsp; empty = false;&nbsp; &nbsp; break;&nbsp; }}

慕神8447489

我来自.net背景。但是,java / c#基本相同。如果您实例化非基本类型(在您的情况下为数组),则该类型不会为null。例如,int[] numbers = new int[3];在这种情况下,将分配空间且每个元素的默认值为0。这将是null,当你做不new起来。例如int[] numbers = null; // changed as per @Joachim's suggestion.if (numbers == null){&nbsp; &nbsp;System.out.println("yes, it is null. Please new it up");}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java