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方法... }