huarrrr的gravatar头像
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去重了,截图:

关于两个实体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日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友