반응형
    
    
    
  
		                                        Notice
		                                        
										
                                    
                                    
                                        Recent Posts
                                        
                                    
                                    
                                        Recent Comments
                                        
                                    
                                    
                                        Link
                                        
                                    
                                | 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 | 
| 12 | 13 | 14 | 15 | 16 | 17 | 18 | 
| 19 | 20 | 21 | 22 | 23 | 24 | 25 | 
| 26 | 27 | 28 | 29 | 30 | 31 | 
                                        Tags
                                        
                                    
                                    - 자바
- Java
- Visual Studio Code
- 인텔리제이
- 이클립스
- Eclipse
- 이탈리아
- Array
- 자바스크립트
- 문자열
- CMD
- Button
- 정규식
- javascript
- replace
- js
- ArrayList
- HashMap
- html
- IntelliJ
- date
- string
- json
- map
- input
- CSS
- list
- 배열
- vscode
- table
                                        Archives
                                        
                                    
                                    - Today
- Total
어제 오늘 내일
[Java] List 중복제거 하면서 합치기 본문
지난 포스팅에서는 2개의 List를 합치는 방법을 알아보았습니다.
[Java] List 2개 합치기
Java에서 2개의 List를 합쳐서 하나로 만드는 방법입니다. List.addAll() Collections.addAll() Stream.of() + flatMap() + collect() 1. List.addAll() boolean addAll(Collection c) java.util.L..
hianna.tistory.com
이번에는 중복은 제거하면서, 2개의 List를 합치는 방법을 알아보겠습니다.
- LinkedHashSet 이용하기
- List.removeAll() 이용하기
1. LinkedHashSet 이용하기
LinkedHashSet 클래스는,
중복을 허용하지 않으면서, 데이터가 입력된 순서대로 데이터를 저장하여,
List를 LinkedHashSet으로 변환하거나, LinkedHashSet을 List로 변환할 때 순서를 보장할 수 있습니다.
코드
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
public class MergeListWithoutDuplication {
    public static void main(String[] args) {
        List<String> list1 = new ArrayList<>(Arrays.asList("A", "B"));
        List<String> list2 = new ArrayList<>(Arrays.asList("B", "C"));
        // list1을 LinkedHashSet으로 변환
        Set<String> set = new LinkedHashSet<>(list1);
        // LinkedHashSet 객체에 list2 병합
        set.addAll(list2);
        // LinkedHashSet 객체를 List로 변환
        List<String> mergedList = new ArrayList<>(set);
        // 결과 출력
        System.out.println(mergedList);  // [A, B, C]
    }
}
결과
[A, B, C]
2. List.removeAll() 이용하기
boolean removeAll(Collection<?> c)
List의 removeAll() 메소드는
파라미터로 전달된 Collection 객체가 가지고 있는 값이 list에 있으면
이 값들을 모두 list에서 제거합니다.
코드
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class MergeListWithoutDuplication {
    public static void main(String[] args) {
        List<String> list1 = new ArrayList<>(Arrays.asList("A", "B"));
        List<String> list2 = new ArrayList<>(Arrays.asList("B", "C"));
        // list1으로 새로운 mergedList 생성
        List<String> mergedList = new ArrayList<>(list1); // [A, B]
        // mergedList에서 list2와 중복되는 항목 제거
        mergedList.removeAll(list2); // [A]
        // mergedList와 list2 합치기
        mergedList.addAll(list2); // [A, B, C]
        // 결과 출력
        System.out.println(mergedList);  // [A, B, C]
    }
}
결과
[A, B, C]mergedList.removeAll(list2);
mergedList의 항목 중 list2의 항목과 중복되는 항목을 삭제한 후,
mergedList.addAll(list2);
mergedList에 list2를 병합하였습니다.
2개의 List를 합칠 때, 중복을 제거하면서 합치는 방법을 알아보았습니다.
반응형
    
    
    
  'IT > Java' 카테고리의 다른 글
| [Java] List에서 특정 값 개수 세기 (0) | 2021.05.06 | 
|---|---|
| [Java] ArrayList의 맨 앞에 값 / ArrayList 추가하기 (0) | 2021.05.06 | 
| [Java] List 2개 합치기 (0) | 2021.05.05 | 
| [Java] 배열 길이 늘리기 (0) | 2021.05.05 | 
| [Java] List에서 null 삭제하기 (0) | 2021.05.05 | 
                              Comments