当前位置: 技术问答>java相关
LinkedList.contains()为什么无法正确比较出一样的元素?
来源: 互联网 发布时间:2015-08-12
本文导语: class myPair{ public String myname = ""; public int flag = 0; public myPair(String name,f){ this.myname = name; this.flag = f; } } class myL{ private LinkedList l_myinfo = new LinkedList(); ...
class myPair{
public String myname = "";
public int flag = 0;
public myPair(String name,f){
this.myname = name;
this.flag = f;
}
}
class myL{
private LinkedList l_myinfo = new LinkedList();
... ...
public boolean msearchit(myPair inp){
if(l_myinfo.contains(inp))
return true;
else
return false;
}
}
调用msearchit总是返回false。如果不用contains函数而是自己做个循环检查链表的话就能正确返回判断。
请问contains函数究竟是对元素作怎样的比较?
我在myPair中增加一个equals()的比较函数也没用。
public String myname = "";
public int flag = 0;
public myPair(String name,f){
this.myname = name;
this.flag = f;
}
}
class myL{
private LinkedList l_myinfo = new LinkedList();
... ...
public boolean msearchit(myPair inp){
if(l_myinfo.contains(inp))
return true;
else
return false;
}
}
调用msearchit总是返回false。如果不用contains函数而是自己做个循环检查链表的话就能正确返回判断。
请问contains函数究竟是对元素作怎样的比较?
我在myPair中增加一个equals()的比较函数也没用。
|
代码全贴出来!看你的意思是说你已经将一个mypair对象加到linkedlist中了,如果是那样的话,是一定可以找到的,如果不是,那么假使说linkedlist不是空的,而你要查找的mypair对象为空,也应该返回true,都则返回false.
|
判断是否同一对象
--- ZJQ
--- ZJQ
|
正常情况下,你需要重载你的equals()方法。是不是你没有正常加入到List中。