判断是否同一对象
--- ZJQ

解决方案 »

  1.   

    代码全贴出来!看你的意思是说你已经将一个mypair对象加到linkedlist中了,如果是那样的话,是一定可以找到的,如果不是,那么假使说linkedlist不是空的,而你要查找的mypair对象为空,也应该返回true,都则返回false.
      

  2.   

    正常情况下,你需要重载你的equals()方法。是不是你没有正常加入到List中。
      

  3.   

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

  4.   

    终于找到问题所在了,原来重载equals的时候误把传入参数写成myPair了,应该是Object,呵呵。难怪,写成myPair就不是重载equals了。