在Java中检查集合是否为空:哪种是最好的方法?

2022-08-31 11:19:30

我有两种方法可以检查列表是否为空

if (CollectionUtils.isNotEmpty(listName)) 

if (listName != null && listName.size() != 0)

我的足弓告诉我,前者比后者好。但我认为后者更好。

任何人都可以澄清一下吗?


答案 1

绝对应该使用 .计算任意列表的 可能很昂贵。当然,即使验证它是否具有任何元素也可能是昂贵的,但是没有优化不能使速度更快,而相反的情况并非如此。isEmpty()size()size()isEmpty()

例如,假设您有一个没有缓存大小的链接列表结构(而有)。然后将成为 O(N) 操作,而仍然是 。LinkedList<E>size()isEmpty()O(1)

此外,当然,使用您实际感兴趣的状态可以更清楚地说明。isEmpty()


答案 2

CollectionUtils.isNotEmpty检查您的集合是否不为空且不为空。与双重检查相比,这更好,但前提是您的项目中有这个Apache库。如果不这样做,请使用:

if(list != null && !list.isEmpty())