在做项目的过程中,有的同时判断当前集合是否为空使用的是size()>0 ,而有的则使用的是isEmpty()方法,查看源码进行分析,以HashMap集合为例:
transient int size;
public boolean isEmpty() {
return size == 0;
}
public int size() {
return size;
}
结论:
在做集合是否为空判断的时候建议使用isEmpty()方法来进行判断
- 它更具表现力(代码更易于阅读和维护)
- 它更快,在某些情况下是数量级。来自JDK的两个非常明显的例子是ConcurrentLinkedQueue和NavigableMap / NavigableSet。所有这些通过迭代通过集合实现“大小”方法,因此,随着元素数量的增加,调用大小变得越来越慢
总结: 对大小调用进行计时来执行小(10个元素)和大(1 000 000个元素)集合之间的比较基准,并且是空方法。虽然基准测试,特别是微基准测试需要大量的盐:-),这些测试表明,调用size方法时至少有10倍的时间差异,调用isEmpty时差别很小方法。