在Android实际开发中,经常会遇到需要使用set来去除重复类型元素的情况。接下来我就记录一下,Set的基本使用方法,来供大家参考一下
List<ItemBean> dataList;//假设为原始数据
...
Set<ItemBean> itemSet = new HashSet<>();
//将数据循环放入Set中
for (ItemBean item : dataList){
itemSet.add(item);
}
//如果需要循环set的话
//final Iterator<ItemBean> iterator = itemSet.iterator();
//while (iterator.hasNext()) {
// final ItemBean item = iterator.next();
// do something
//}
//重新获得新对象
List<ItemBean> newList = new ArrayList<>(itemSet);
以上问题就完成了HashSet的基本用法了,但是需要注意的是,HashSet 是通过hashCode() 和equals()来判断是否为同一元素的,所以,需要根据你的条件,对该对象进行
hashCode() 和equals()的重写,我上传一下我的代码
public class ItemBean{
private int id;
public int getId(){
return id;
}
public void setId(int id){
this.id = id;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof FileBean) {
return this.id == ((FileBean) obj).getId();
}
return false;
}
@Override
public int hashCode() {
return this.id;
}
}
故事到这就完了