반응형
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
- 자바
- IntelliJ
- html
- list
- CMD
- Array
- javascript
- Java
- Button
- string
- 인텔리제이
- Visual Studio Code
- input
- windows
- date
- vscode
- Files
- 문자열
- table
- 자바스크립트
- 이탈리아
- CSS
- 테이블
- 이클립스
- 배열
- Eclipse
- js
- json
- ArrayList
- Maven
Archives
- Today
- Total
어제 오늘 내일
[Java] List 중복제거 하면서 합치기 본문
지난 포스팅에서는 2개의 List를 합치는 방법을 알아보았습니다.
이번에는 중복은 제거하면서, 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