e2

滴滴侠,fai抖

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

Set去重原理流程:

Set下的HashSet集合通过集合元素的hashCode()方法和equals()方法来进行去重复,如果两个元素的hashCode相等,然后再去调用equals方法,如果也相等,那么就认为这两个元素相等,第二个元素就不会添加到集合中,从而保证了元素的去重复;

 

重写User实体的hashCode、equal方法,如下:

 

  1.  
    package com.betawoo.core.entity;
  2.  
     
  3.  
     
  4.  
    import java.util.Date;
  5.  
    import java.util.List;
  6.  
    import java.util.Map;
  7.  
     
  8.  
    /**
  9.  
    * Created by HGG 16/10/11.
  10.  
    */
  11.  
    public class User {
  12.  
     
  13.  
    private String userId;
  14.  
    private String userName;
  15.  
    private String email;
  16.  
     
  17.  
    public String getUserId() {
  18.  
    return userId;
  19.  
    }
  20.  
     
  21.  
    public void setUserId(String userId) {
  22.  
    this.userId = userId;
  23.  
    }
  24.  
     
  25.  
    public String getUserName() {
  26.  
    return userName;
  27.  
    }
  28.  
     
  29.  
    public void setUserName(String userName) {
  30.  
    this.userName = userName;
  31.  
    }
  32.  
     
  33.  
    public String getEmail() {
  34.  
    return email;
  35.  
    }
  36.  
     
  37.  
    public void setEmail(String email) {
  38.  
    this.email = email;
  39.  
    }
  40.  
     
  41.  
    /**
  42.  
    * set<User></>去重,重新如下两个方法hashCode、equals
  43.  
    */
  44.  
    @Override
  45.  
    public int hashCode(){
  46.  
    return userId.hashCode();
  47.  
    }
  48.  
     
  49.  
    @Override
  50.  
    public boolean equals(Object obj){
  51.  
    if(obj instanceof User){
  52.  
    User user=(User)obj;
  53.  
    return userId.equals(user.userId);
  54.  
    }
  55.  
    return super.equals(obj);
  56.  
    }
  57.  
     
  58.  
    }

 

 

 

感谢

posted on 2019-09-06 20:57  纯黑Se丶  阅读(365)  评论(0编辑  收藏  举报