推荐使用 isEmpty() 方法判断 ArrayList 是否为空,因其语义清晰、性能高效;若引用可能为 null,需先判空再调用,即 list != null && list.isEmpty()。

Java 中判断 ArrayList 是否为空,最常用、最推荐的方式是调用 isEmpty() 方法。它语义清晰、性能高效,且比手动比较 size() == 0 更具可读性。
使用 isEmpty() 方法(推荐)
这是标准、安全、直观的做法:
-
isEmpty()内部直接返回size == 0,没有额外开销 - 代码意图明确,一眼看出“检查是否为空”
- 适用于所有实现了
List接口的集合(如ArrayList、LinkedList)
示例:
ArrayList<String> list = new ArrayList<>();
if (list.isEmpty()) {
System.out.println("列表为空");
}
检查 size() == 0
虽然可行,但不如 isEmpty() 直观:
立即学习“Java免费学习笔记(深入)”;
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
- 功能等价,性能几乎无差别
- 但语义稍弱——
size()是获取长度,再做比较,多了一步逻辑 - 容易误写成
size() < 0(虽不可能,但无意义)
示例:
if (list.size() == 0) {
System.out.println("列表为空");
}
注意:先判空再调用方法(防 NullPointerException)
如果 ArrayList 引用本身可能为 null,必须先检查引用非空,再调用 isEmpty():
- 直接对
null调用isEmpty()会抛出NullPointerException - 稳妥写法:
list != null && list.isEmpty()
示例:
if (list != null && list.isEmpty()) {
System.out.println("列表存在且为空");
}
不建议:用 == null 判断是否为空
list == null 检查的是引用是否为空,不是列表内容是否为空:
-
null表示“没创建对象”,不是“空列表” - 一个新建的
new ArrayList<>()是非null的空列表 - 混淆二者会导致逻辑错误(比如跳过初始化或误报异常)

















