A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

list集合判断元素的是否相同依据的是元素的equals方法;Remove也是equals,如果对象的类没有重写的Object的equals 方法就是比较对象是否同一个如果你建了一个新的对象肯定不同,要实现判断数据相同认为是一个对象需要重写Object 的equals方法
class ListDemo
{
        public static void sop(Object obj){
                System.out.println(obj);
        }
        public static void main(String[] args)
        {
                ArrayList al1=new ArrayList();
                        al1.add(new Person("lisi",30));
                               
                                al1.add(new Person("lis3",30));
               
                       
                al1=singleList(al1);
               
                   for(Iterator it =al1.iterator();it.hasNext();){
                           Person p=(Person)it.next();
                           sop(p.getName()+"    "+p.getAge());
                   }
        }
       
        public static ArrayList singleList(ArrayList al){//去掉相同元素的方法,
                //Iterator it=al.iterator();
                ArrayList newAl=new ArrayList();
                for(Iterator it=al.iterator();it.hasNext();){
                        Object obj=it.next();
                        //sop(obj);
                        if(!newAl.contains(obj)){
                                newAl.add(obj);
                        }

                }
                return newAl;
        }



}
class Person
{
        private String name;
        private int age;
        Person(String name,int age){
                this.name=name;
                this.age=age;
        }
        public String getName(){
                        return name;
        }
        public int getAge(){
                return age;
        }
        public boolean equals(Object o){
                        if(!(o instanceof Person))
                                throw new RuntimeException("leixing bufu");
                        System.out.println(this。name);//打印调用者的名字
                        Person p=(Person)o;
                        return name.equals(p.getName())&&age==p.getAge();

        }

}

2 个回复

正序浏览
可以自己复写equals方法打印信息。看看
回复 使用道具 举报
学习一个    很不错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马