목록 컬렉션에서 중복 요소를 제거하는 5가지 방법

목차

1. 중복 제거를 추가하는 For 루프

2. 이중 루프 중복 제거의 경우

3. 이중 루프 반복 좌표 중복 제거의 경우

4. 중복 제거 설정

5. 스트림 중복 제거


1. 중복 제거를 추가하는 For 루프

    List<String> oldList = new ArrayList<>();
        oldList.add("张三");
        oldList.add("张三");
        oldList.add("李四");
        oldList.add("王五");
        oldList.add("赵六");
        List<Object> newList = Lists.newArrayList();
        for (String name : oldList) {
            if (!newList.contains(name)){
                newList.add(name);
            }
        }
        System.out.println("原本的集合原素"+oldList);
        System.out.println("去重后的集合"+newList);

인쇄 결과는 다음과 같습니다.

2. 이중 루프 중복 제거의 경우

    @Test
    void contextLoads3() {
        List<String> oldList = new ArrayList<>();
        oldList.add("张三");
        oldList.add("张三");
        oldList.add("李四");
        oldList.add("王五");
        oldList.add("赵六");
        for (int i = 0; i < oldList.size() - 1; i++) {
            for (int j = oldList.size() - 1; j>1 ; j--) {
                if (oldList.get(j).equals(oldList.get(i))) {
                    oldList.remove(j);
                }
            }
        }
        System.out.println("原本的集合原素"+oldList);
    }

인쇄 결과는 다음과 같습니다.

3. 이중 루프 반복 좌표 중복 제거의 경우

   @Test
    void contextLoads4() {
        List<String> oldList = new ArrayList<>();
        oldList.add("张三");
        oldList.add("张三");
        oldList.add("李四");
        oldList.add("王五");
        oldList.add("赵六");
        List<String> newList = Lists.newArrayList();
        newList.addAll(oldList);
        for (String name : newList) {
            if (oldList.indexOf(name) != oldList.lastIndexOf(name)) {
                oldList.remove(oldList.lastIndexOf(name));
            }
        }
        System.out.println("原本的集合原素"+oldList);
    }

인쇄 결과는 다음과 같습니다.

4. 중복 제거 설정

    @Test
    void contextLoads5() {
        List<String> oldList = new ArrayList<>();
        oldList.add("张三");
        oldList.add("张三");
        oldList.add("李四");
        oldList.add("王五");
        oldList.add("赵六");
        List<String> newList = Lists.newArrayList(new HashSet(oldList));
        System.out.println("原本的集合原素"+newList);
    }

인쇄 결과는 다음과 같습니다.

5. 스트림 중복 제거

    @Test
    void contextLoads5() {
        List<String> oldList = new ArrayList<>();
        oldList.add("张三");
        oldList.add("张三");
        oldList.add("李四");
        oldList.add("王五");
        oldList.add("赵六");
        List<String> collect = oldList.stream().distinct().collect(Collectors.toList());
        System.out.println("原本的集合原素"+collect);
    }

인쇄 결과는 다음과 같습니다.

 

추천

출처blog.csdn.net/XikYu/article/details/130865216