一、重写存储对象的equals和hasCode,
@Override
public boolean equals(Object obj) {
SMS sms = obj instanceof SMS ? (SMS) obj : null;
return !TextUtils.isEmpty(phoneNum) && phoneNum.equals(null != sms ? sms.phoneNum : "");
}
public int hashCode() {
return !TextUtils.isEmpty(this.phoneNum) ? this.phoneNum.hashCode() : 0;
}
二、插入数据
1、HasMap
Map<SMS, String> mHashMap = new HashMap<>();
map.put(new SMS("13333333333"), "通知消息");
map.put(new SMS("13333333333"), "通知消息");
map.put(new SMS("13777777777"), "通知消息");
map.put(new SMS("13666666666"), "通知消息");
map.put(new SMS("13666666666"), "通知消息");
最终mHashMap中数据只会有三条。通过电话号码过滤掉了重复的电话数据。
2、集合去重(List)
使用HashSet
List<SMS> mSmsList=new ArrayList<>();
mSmsList.add(new SMS("13333333333"));
mSmsList.add(new SMS("13333333333"));
mSmsList.add(new SMS("13777777777"));
mSmsList.add(new SMS("13666666666"));
mSmsList.add(new SMS("13666666666"));
Set<SMS> mHashSet = new LinkedHashSet<>(mSmsList);
mSmsList = new ArrayList<>(mHashSet);