How to remove duplicate objects in a List without equals/hashcode?

后端 未结 21 1621
渐次进展
渐次进展 2020-12-03 02:53

I have to remove duplicated objects in a List. It is a List from the object Blog that looks like this:

public class Blog {
    private String title;
    priv         


        
21条回答
  •  借酒劲吻你
    2020-12-03 03:24

        import java.util.ArrayList;
    
        import java.util.HashSet;
    
        class Person
    
    {
        public int age;
        public String name;
        public int hashCode()
        {
           // System.out.println("In hashcode");
            int hashcode = 0;
            hashcode = age*20;
            hashcode += name.hashCode();
            System.out.println("In hashcode :  "+hashcode);
            return hashcode;
        }
         public boolean equals(Object obj)
            {
                if (obj instanceof Person)
                    {
                        Person pp = (Person) obj;
                        boolean flag=(pp.name.equals(this.name) && pp.age == this.age); 
                        System.out.println(pp);
                        System.out.println(pp.name+"    "+this.name);
                        System.out.println(pp.age+"    "+this.age);
                        System.out.println("In equals : "+flag);
                        return flag;
                    }
                    else 
                        {
                        System.out.println("In equals : false");
                            return false;
                        }
             }
        public void setAge(int age)
        {
            this.age=age;
        }
        public int getAge()
        {
            return age;
        }
        public void setName(String name )
        {
            this.name=name;
        }
        public String getName()
        {
            return name;
        }
        public String toString()
        {
            return "[ "+name+", "+age+" ]";
        }
    }
    class ListRemoveDuplicateObject 
    {
        public static void main(String[] args) 
        {
            ArrayList al=new ArrayList();
    
                Person person =new Person();
                person.setName("Neelesh");
                person.setAge(26);
                al.add(person);
    
                person =new Person();
                person.setName("Hitesh");
                person.setAge(16);
                al.add(person);
    
                person =new Person();
                person.setName("jyoti");
                person.setAge(27);
                al.add(person);
    
                person =new Person();
                person.setName("Neelesh");
                person.setAge(60);
                al.add(person);
    
                person =new Person();
                person.setName("Hitesh");
                person.setAge(16);
                al.add(person);
    
                person =new Person();
                person.setName("Mohan");
                person.setAge(56);
                al.add(person);
    
                person =new Person();
                person.setName("Hitesh");
                person.setAge(16);
                al.add(person);
    
            System.out.println(al);
            HashSet al1=new HashSet();
            al1.addAll(al);
            al.clear();
            al.addAll(al1);
            System.out.println(al);
        }
    }
    

    output

    [[ Neelesh, 26 ], [ Hitesh, 16 ], [ jyoti, 27 ], [ Neelesh, 60 ], [ Hitesh, 16 ], [ Mohan,56 ], [ Hitesh, 16 ]]
    In hashcode : -801018364
    In hashcode : -2133141913
    In hashcode : 101608849
    In hashcode : -801017684
    In hashcode : -2133141913
    [ Hitesh, 16 ]
    Hitesh Hitesh
    16 16
    In equals : true
    In hashcode : 74522099
    In hashcode : -2133141913
    [ Hitesh, 16 ]
    Hitesh Hitesh
    16 16
    In equals : true
    [[ Neelesh, 60 ], [ Neelesh, 26 ], [ Mohan, 56 ], [ jyoti, 27 ], [ Hitesh, 16 ]]

提交回复
热议问题