Long md=123456L;
LinkedList<Long> list=new LinkedList<Long>();
list.add(123456L);
ListIterator<Long> it=list.listIterator();
while(it.hasNext())
{
if(it.next()==md)
//
else
//
}代码中一个隐藏了很长时间有BUG今天找到了。
问题出在了Long比较是否相等引起的,示示例如下:
我的本意是判断md是否在list中,如上所示,md=123456,在list中,但用上面的代码得到的结果是不在。
个人分析是因为对于Long类,使用==来比较会出问题,因为只有是同一个对象时,等号才会成立。
解决方法为将md声明为long,这样it.next()与md比较时,Long会转换为long。
本文讨论了一个关于Long类型比较错误导致的列表元素查找问题。详细解释了为何使用==比较Long实例会导致误判,并提供了正确的解决方法:将比较的变量从Long类型转换为long类型。通过示例代码展示了解决方案的有效性。
3453

被折叠的 条评论
为什么被折叠?



