【问题标题】:remove duplicates in Set删除 Set 中的重复项
【发布时间】:2022-06-14 16:09:31
【问题描述】:

如何避免在 Set 中插入重复元素?如果我有:

 Set<User> user=new HashSet<>();
                            User user1=new User("11","Mark",null,"1");
                            User user2=new User("11","Mark",null,"1");
                            User user3=new User("12","Helen",null,"2");

                            user.add(user1);
                            user.add(user2);
                            Log.d("main_activity_user", "la dimensione è" +String.valueOf(user.size()));

Adn 用户类是:

public class User {
    public String uid;
public String name;
    public String pversion;
public String upicture;
    public User(String uid,
            String name,
                String upicture, String pversion ){
        this.uid=uid;
        this.name=name;
        this.upicture=upicture;
        this.pversion=pversion;
    }
    public String get_uid(){
        return uid;
    }
    public String get_name(){
        return name;
    }
    public String get_pversion(){
        return pversion;
    }
    public String get_upicture(){
        return upicture;
    }
    @Override
    public boolean equals(Object obj) {
        User newObj = (User)obj;
        if (this.get_uid().equals( newObj.get_uid()))
            return true;
        else
            return false;
    }
}

现在该集合还存储重复项并打印 3 个元素而不是 2 个。为什么? 没用过set类,看不懂,所以每次使用Set类,都要重写Equals方法?为什么?该类不会自动删除重复项吗?

【问题讨论】:

  • 您是否覆盖了hashCode()

标签: java collections duplicates set


猜你喜欢
  • 2016-08-13
  • 2015-12-29
  • 2019-12-07
  • 2013-06-17
  • 1970-01-01
  • 2012-04-17
  • 2019-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多