Java Set 去除重複對象的方法

Set集合是針對String和8大基礎數據類型過濾掉重複數據,如果存放的是其他類型對象,則需要重寫hashCode方法和equals方法,當equals比較相等時,則會去比較hashCode的值 如果一致的話,則不會存進set容器.

 

去重方法:

 

在實體類中,重寫重寫hashCode方法和equals方法

public class 類名 implements Serializable {

   private String id;
   private String name;
   
    // set對象重複禁止添加,重寫頂級方法
    @Override
    public boolean equals(Object obj) {
        if(obj == null) {
            return false;
        }
        if(this == obj) {
            return true;
        }
        if(obj instanceof 類名){
            類名 xx =(類名)obj;
            // 對象比較一個字段時
            //if(xx.id.equals(this.id)){
            //    return true;
            //}
            對象比較多個字段時, 用&& 隔開
            if(xx.id.equals(this.id) && xx.name.equals(this.name)){
                return true;
            }
        }
        return false;
    }

    @Override
    public int hashCode() {
         // 一個參數時
        // return id.hashCode();
        // 多個參數時
        return id.hashCode() * name.hashCode();
    }
    
    set,get方法...

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章