关于equals的问题,谢谢了

thelastbaby 2004-04-15 10:22:52
for(Iterator Li=list.iterator();Li.hasNext();)
{
if(Li.next()!=e)
{count++;System.out.println("count is "+count);}
}

上面的代码,如果把if(Li.next()!=e)换成(Li.next()).equals(e);会有什么不同吗?

另外,对于==和equals在使用上有什么不同吗,区别在那?谢谢了
...全文
51 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chanceqw 2004-04-15
  • 打赏
  • 举报
回复
就是可能equals()方法被修改了,就像Integer.equals()比较的不再是句柄,而是里面的值
thelastbaby 2004-04-15
  • 打赏
  • 举报
回复
具体类是否覆盖了Object的equals()方法是什么意思呀
chanceqw 2004-04-15
  • 打赏
  • 举报
回复
因为Iterator.next()方法返回的是Object类型的对象,所以
Li.next().equals(e)调用的是Object的equals()方法,所以
Li.next().equals(e)与Li.next()==e比较结果将会相同
但是这种情况对于具体的类型,将会有一些差别
比如
Integer n1=new Integer(20);
Integer n2=new Integer(20);
n1==n2的结果将是false,而n1.equals(n2)的结果是true
这种情况取决于具体类是否覆盖了Object的equals()方法

(提点小建议:一般变量和方法名首字母小写)
bon_jovi 2004-04-15
  • 打赏
  • 举报
回复
equals比较内容。
==比较两个引用是否指向同一个实例。
381612 2004-04-15
  • 打赏
  • 举报
回复
==用来判断两个对象引用是否指向同一个内存空间
equals判断两个对象的引用指向的内容是否相同

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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