美文网首页
JAVA处理集合(去重、排序等)

JAVA处理集合(去重、排序等)

作者: 嗚嗚雲 | 来源:发表于2022-05-12 17:50 被阅读0次
    • 1、去重
      利用list中contains方法去重,重写equals()方法即可
     @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            Env env = (Env) o;
            return inf.equals(env.inf) &&
                    alias.equals(env.alias) &&
                    ip.equals(env.ip);
        }
    
    • 测试实例
     @Test
        public void test1() {
            List<Env> list = new ArrayList<>();
            Env env1 = new Env();
            env1.setAlias("testAlias1");
            env1.setIp("testIp1");
            env1.setInf("testInf1");
    
            Env env2 = new Env();
            env2.setAlias("testAlias1");
            env2.setIp("testIp1");
            env2.setInf("testInf1");
    
            Env env3 = new Env();
            env3.setAlias("testAlias3");
            env3.setIp("testIp3");
            env3.setInf("testInf3");
    
            list.add(env1); // 1 和 2 是重复的
            list.add(env2);
            list.add(env3);
    
            log.info("重写对象的equals,利用list的contains完成判断");
            List<Env> newList = new ArrayList<>();
            for (Env env : list) {
                if (!newList.contains(env)){
                    newList.add(env);
                }
            }
            for (Env env : newList) {
                log.info(env.toString());
            }
        }
    
    • 2、排序
    Collections.sort(list, new Comparator<Env>() {
                    @Override
                    public int compare(Env o1, Env o2) {
                        int c = 0;
                        //首先按照type由小到大排序
                        //升序 就是o1在前面,降序就是o2在前面,compareTo时比大小
                        // 返回为正数表示o1>o2, 返回为负数表示o1<o2, 返回为0表示o1==o2;
                        c = o1.getType().compareTo(o2.getType());
                        if (c == 0) { // 二次排序一般是上一个排序的结果相同的时候,再触发第二次排序
                            // 按照id由小到大排序
                            c = o1.getId().compareTo(o2.getId());
                        }
                        return c;
                    }
                });
    

    相关文章

      网友评论

          本文标题:JAVA处理集合(去重、排序等)

          本文链接:https://www.haomeiwen.com/subject/gysiertx.html