您的位置:

如何判断一个Java List是否为空

一、使用isEmpty方法

Java中的List接口提供了一个isEmpty()方法,用于判断List是否为空。该方法返回一个boolean类型的值,如果List为空,则返回true,否则返回false。可以使用该方法来简单地判断List是否为空。

List<String> list = new ArrayList<>();
if (list.isEmpty()) {
    System.out.println("List is empty");
} else {
    System.out.println("List is not empty");
}

二、使用size方法

除了使用isEmpty方法外,还可以使用List的size方法来判断List是否为空。List的size方法返回List中元素的数量,如果List为空,则返回0。

List<String> list = new ArrayList<>();
if (list.size() == 0) {
    System.out.println("List is empty");
} else {
    System.out.println("List is not empty");
}

需要注意的是,使用size方法判断List是否为空时,不能使用list.size() == null的方式,因为size方法返回的是一个int类型的值,而不是一个引用类型。

三、使用Objects.isNull方法

Java 8中引入了Objects类,该类提供了一个isNull方法,用于判断一个对象是否为null。可以使用该方法来判断List是否为空。

import java.util.Objects;

List<String> list = new ArrayList<>();
if (Objects.isNull(list)) {
    System.out.println("List is null");
} else if (list.isEmpty()) {
    System.out.println("List is empty");
} else {
    System.out.println("List is not empty");
}

需要注意的是,isNull方法只能用于判断对象是否为null,不能用于判断List是否为空。因此,还需要结合isEmpty方法来判断List是否为空。

四、使用Guava的Objects.equal方法

Guava是Google开源的一个Java工具库,其中的Objects类提供了一个equal方法,用于比较两个对象是否相等。如果两个对象都为null或都不为null但相等,则返回true,否则返回false。可以使用该方法来判断List是否为空。

import com.google.common.base.Objects;

List<String> list = new ArrayList<>();
if (Objects.equal(list, Collections.emptyList())) {
    System.out.println("List is empty");
} else {
    System.out.println("List is not empty");
}

需要注意的是,使用Guava的Objects.equal方法判断List是否为空时,需要将List和Collections.emptyList()进行比较,否则无法正确判断List是否为空。

五、使用Apache Commons Collections的CollectionUtils.isEmpty方法

Apache Commons Collections是一个开源的Java集合相关工具库,其中的CollectionUtils类提供了一个isEmpty方法,用于判断集合是否为空。该方法接收一个Collection类型的参数,如果该集合为null或包含0个元素,则返回true,否则返回false。可以使用该方法来判断List是否为空。

import org.apache.commons.collections4.CollectionUtils;

List<String> list = new ArrayList<>();
if (CollectionUtils.isEmpty(list)) {
    System.out.println("List is empty");
} else {
    System.out.println("List is not empty");
}

需要注意的是,使用Apache Commons Collections的CollectionUtils.isEmpty方法判断List是否为空时,需要导入commons-collections4包,否则无法使用该方法。