list.isEmpty()与list.size()==0有区别吗?

wuyigong111 2011-12-16 11:14:48
如题。
...全文
931 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyigong111 2011-12-17
  • 打赏
  • 举报
回复
楼上的纠正一下,2、读 JDK源码 是一个好途径。
wuyigong111 2011-12-17
  • 打赏
  • 举报
回复
嗯,好的,谢谢楼上的各位。
得出两个结论:
1、看样子是没什么区别。
2、读 API 是一个好途径。
小武茶庄 2011-12-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 huntor 的回复:]
2,3L 两个都是方法调用,哪来的避免null??
[/Quote]

但list没实例化。
List list = null;
list.size();
Exception:
java.lang.NullPointerException


龙四 2011-12-17
  • 打赏
  • 举报
回复
没有任何区别,只是empty更便利一些
fainfy 2011-12-17
  • 打赏
  • 举报
回复
对于得出的结果是没有区别。

唯一的区别就是使用上面,JDK已经提供你更简单的API而已。
当然如果你认为list.size() == 0更简单,那就随便用了。
jake512 2011-12-17
  • 打赏
  • 举报
回复
list.isEmpty()与list.size()==0有区别吗?
list.isEmpty()得到的结果是 true or false,list.size()==0得到的也是true or false ,但是后者不是直接得到的,是通过与0做比较才得到的结果。list.size()返回的是一个Int表长度的数。
huntor 2011-12-17
  • 打赏
  • 举报
回复
2,3L 两个都是方法调用,哪来的避免null??
huntor 2011-12-17
  • 打赏
  • 举报
回复
java/util/ArrayList.java
    /**
* Returns the number of elements in this list.
*
* @return the number of elements in this list
*/
public int size() {
return size;
}

/**
* Returns <tt>true</tt> if this list contains no elements.
*
* @return <tt>true</tt> if this list contains no elements
*/
public boolean isEmpty() {
return size == 0;
}

LinkedList 则是从AbstractCollection继承的
    public boolean isEmpty() {
return size() == 0;
}

LucEaspe 2011-12-17
  • 打赏
  • 举报
回复
一样的。
  • 打赏
  • 举报
回复
区别嘛还真有一个 那就是他们的返回值是不一样的
isEmpty()方法返回的是布尔值,而size()方法返回的整形
  • 打赏
  • 举报
回复
没区别,一样的
dxqrr 2011-12-17
  • 打赏
  • 举报
回复
2个一样的,只不过isEmpty从语义上提供了更方便的方法
吴红军 2011-12-16
  • 打赏
  • 举报
回复
你能说出ArrayList和LinkedList的区别,你就懂了。
ZangXT 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zangxt 的回复:]

感觉时间复杂度可能不同,一般实现的话,isEmpty O(1)应该完成,而size()需要O(n)
[/Quote]
如果链表通过在加入或者删除元素时记录size来处理的话,时间复杂度就会是一样的。

主要依赖于“实现”
吴红军 2011-12-16
  • 打赏
  • 举报
回复
楼上正解
走随心 2011-12-16
  • 打赏
  • 举报
回复
前一个应该可以判断NULL的情况,后一种遇到NULL会报空指针。。。


新建的J2EE QQ交流群欢迎大家的加入:200260812
ZangXT 2011-12-16
  • 打赏
  • 举报
回复
感觉时间复杂度可能不同,一般实现的话,isEmpty O(1)应该完成,而size()需要O(n)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧