LinkedList.contains()为什么无法正确比较出一样的元素?-CSDN论坛-CSDN.NET-中国最大的IT技术社区

换成这种方法的话就能正确的查出元素,如果换成//行的写法而不用循环的话就总是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;

}

}

 

 

来源URL:http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763104687270e54f7327d818c027fa3cf1fd5791d1c053db2fa3a211202d1c7786606bb0c01aaa6392a644773a09bb9d61181e2c57e3889576a2b5dc05613a30eafbc5124b171cd06affc42bbfb&p=91759a45d5c30bb113bfca2d021497&newp=8b2a9703c0af03c308e2947d0d0a91231610db2151d4d01539c2ff0aff&user=baidu&fm=sc&query=java+linkedlist%2Econtains&qid=ea64dc1b00078d6a&p1=4