换成这种方法的话就能正确的查出元素,如果换成//行的写法而不用循环的话就总是return false;终于找到问题所在了,原来重载equals的时候误把传入参数写成myPair了,应该是Object,呵呵。难怪,写成myPair就不是重载equals了。
class myPair{
public String myname = “”;
public int flag = 0;
public myPair(String name,f){
this.myname = name;
this.flag = f;
}
public boolean equals(myPair inp){
if(inp.myname.compareTo(this.myname)==0 && inp.flag==this.flag)
return true;
else
return false;
}
}
class myL{
private LinkedList l_myinfo = new LinkedList();
… …
public boolean msearchit(myPair inp){
boolean b_matched = false;
//b_matched = l_myinfo.contains(inp);
for(int i=0;i<l_myinfo.size();i++){
if((myPair)l_myinfo.get(i).equals(inp)){
b_matched = true;
break;
}
}
if(b_matched)
return true;
else
return false;
}
}