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

后端 未结 21 1577
渐次进展
渐次进展 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:28

    Here is the complete code which works for this scenario:

    class Blog {
        private String title;
        private String author;
        private String url;
        public String getTitle() {
            return title;
        }
    
        public void setTitle(String title) {
            this.title = title;
        }
    
        public String getAuthor() {
            return author;
        }
    
        public void setAuthor(String author) {
            this.author = author;
        }
    
        public String getUrl() {
            return url;
        }
    
        public void setUrl(String url) {
            this.url = url;
        }
    
        public String getDescription() {
            return description;
        }
    
        public void setDescription(String description) {
            this.description = description;
        }
    
        private String description;    
    
        Blog(String title, String author, String url, String description)
        {
            this.title = title;
            this.author = author;
            this.url = url;
            this.description = description; 
        }
        @Override
        public boolean equals(Object obj) {
            // TODO Auto-generated method stub
            if(obj instanceof Blog)
            {
                Blog temp = (Blog) obj;
                if(this.title == temp.title && this.author== temp.author && this.url == temp.url && this.description == temp.description)
                    return true;
            }
            return false;
    
        }
        @Override
        public int hashCode() {
            // TODO Auto-generated method stub
    
            return (this.title.hashCode() + this.author.hashCode() + this.url.hashCode() + this.description.hashCode());        
        }
    }
    

    Here is the main function which will eliminate the duplicates:

    public static void main(String[] args) {
        Blog b1 = new Blog("A", "sam", "a", "desc");
        Blog b2 = new Blog("B", "ram", "b", "desc");
        Blog b3 = new Blog("C", "cam", "c", "desc");
        Blog b4 = new Blog("A", "sam", "a", "desc");
        Blog b5 = new Blog("D", "dam", "d", "desc");
        List list = new ArrayList();
        list.add(b1);
        list.add(b2);
        list.add(b3);
        list.add(b4);       
        list.add(b5);
    
        //Removing Duplicates;
        Set s= new HashSet();
        s.addAll(list);         
        list = new ArrayList();
        list.addAll(s);        
        //Now the List has only the identical Elements
    }
    

提交回复
热议问题