huarrrr
2018-12-19 11:26:36
关于两个实体list元素去重问题解决
本人去重用过3种方法:
1、直接for循环remove();
2、将list转换成无序的set,去重后再转换成list;
3、iterator迭代器;
这个迭代器可能大神们都知道,作为一个新手我还是第一次用,随便记录一下,不喜勿喷。
最近在做一个仿支付宝九宫格管理的需求,因为就框架没有封装新版rv导致包冲突,只能做一个GridView。后台返回两组数据,一组是首页展示的,另一组是隐藏待展示的。管理时需要重新组装list。一开始用for循环发现去除后会多出一个,原因是id会重复导致判断错误没有去除。。后来发现util包中有一个Itorator的接口类,它非常简单:
public interface Iterator<E> {
boolean hasNext();
E next();
void remove();
}
它只能单向移动:第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。其中:next()获得序列中的下一个元素;hasNext()检查序列中是否还有元素;remove()将迭代器新返回的元素删除。于是:
for (MenuEntity menuEntity : indexSelect) {
Iterator<MenuEntity> iterator = indexLC.iterator();
while (iterator.hasNext()) {
MenuEntity next = iterator.next();
if (next.getTitle().equals(menuEntity.getTitle())) {
iterator.remove();
}
}
}
这样就完成了两个实体list去重了,截图:
ok。今天分享这么一个轻量级对象。
评论
最近浏览
wxh1234567 LV4
2021年9月28日
天大可想
2021年4月15日
暂无贡献等级
bang613623 LV1
2020年10月13日
378190026
2020年4月8日
暂无贡献等级
一天一点爱恋 LV5
2020年3月13日
LikL9420 LV12
2020年1月16日
栗劲松 LV2
2019年11月26日
you960801
2019年11月15日
暂无贡献等级
hhuangh LV5
2019年11月14日
wangshaoqiu LV4
2019年10月30日



