1.리스트의 교집합
List클래스의 retainAll()메서드를 사용하여 두 개의 리스트에서 교집합을 구할 수 있습니다.
package edu.sample;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ArrayListDeup {
public static void main(String[] args) {
List<String> arrayList = new ArrayList<String>();
arrayList.add("C");
arrayList.add("A");
arrayList.add("B");
List<String> arrayList2 = new ArrayList<String>();
arrayList2.add("E");
arrayList2.add("A");
arrayList2.add("B");
arrayList2.add("D");
arrayList2.add("E");
arrayList2.add("F");
//교집합
arrayList.retainAll(arrayList2);
System.out.println("교집합 : "+ arrayList.toString() );
}
}
[코드 실행결과]
교집합 : [A, B]
2.리스트의 부분집합
List클래스의 containsAll()메서드를 사용하여 부분집합을 구할 수 있습니다. 첫번째 arrayList2는 arrayList의 부분집합인가?에 대한 결과로 false 값을 얻었습니다. 두번째 arrayList3는 arrayList2의 부분집합인가?에 대한 결과를 true값을 리턴 받습니다.
package edu.sample;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ArrayListDeup {
public static void main(String[] args) {
List<String> arrayList = new ArrayList<String>();
arrayList.add("C");
arrayList.add("A");
arrayList.add("B");
List<String> arrayList2 = new ArrayList<String>();
arrayList2.add("E");
arrayList2.add("A");
arrayList2.add("B");
arrayList2.add("D");
arrayList2.add("E");
arrayList2.add("F");
List<String> arrayList3 = new ArrayList<String>(Arrays.asList("B", "D", "F"));
//부분집합
boolean isVal = arrayList.containsAll(arrayList2);
boolean isVal2 = arrayList2.containsAll(arrayList3);
System.out.println("isVal: "+ isVal);
System.out.println("isVal2: "+ isVal2);
}
}
[코드 실행결과]
isVal: false
isVal2: true
3.리스트의 차집합
List클래스의 removeAll()메서드를 사용하여 두 어레이리스트에서 차잡합을 구합니다. arrayList에서 arrayList2와 같은 리스트의 값을 모두 제거하며 C만 남게 됩니다.
package edu.sample;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ArrayListDeup {
public static void main(String[] args) {
List<String> arrayList = new ArrayList<String>();
arrayList.add("C");
arrayList.add("A");
arrayList.add("B");
List<String> arrayList2 = new ArrayList<String>();
arrayList2.add("E");
arrayList2.add("A");
arrayList2.add("B");
arrayList2.add("D");
arrayList2.add("E");
arrayList2.add("F");
//차집합
arrayList.removeAll(arrayList2);
System.out.println("차집합 : "+ arrayList.toString() );
}
}
[코드 실행결과]
차집합 : [C]
4.리스트의 합집합
List클래스의 addAll()메서드를 사용하여 arrayList 간 합집합을 구할 수 있습니다. addAll()메서드는 두 리스트의 중복값을 제거해 주지 않습니다. 중복을 제거하려면 HashSet를 사용하면 중복값을 허용하지 않음으로 제거됩니다.
package edu.sample;
import java.util.ArrayList;
import java.util.List;
public class ArrayListDeup {
public static void main(String[] args) {
List<String> arrayList = new ArrayList<String>();
arrayList.add("C");
arrayList.add("A");
arrayList.add("B");
List<String> arrayList2 = new ArrayList<String>();
arrayList2.add("E");
arrayList2.add("A");
arrayList2.add("B");
arrayList2.add("D");
arrayList2.add("E");
arrayList2.add("F");
//합집합
arrayList.addAll(arrayList2);
System.out.println("합집합 : "+ arrayList.toString() );
}
}
[코드 실행결과]
합집합 : [C, A, B, E, A, B, D, E, F]
합집합의 중복요소 제거를 위해 HashSet를 사용
package edu.sample;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
public class ArrayListDeup {
public static void main(String[] args) {
List<String> arrayList = new ArrayList<String>();
arrayList.add("C");
arrayList.add("A");
arrayList.add("B");
List<String> arrayList2 = new ArrayList<String>();
arrayList2.add("E");
arrayList2.add("A");
arrayList2.add("B");
arrayList2.add("D");
arrayList2.add("E");
arrayList2.add("F");
//합집합
arrayList.addAll(arrayList2);
//System.out.println("합집합 : "+ arrayList.toString() );
//arrayList 중복제거
HashSet<String> hash1 = new HashSet<String>();
hash1.addAll(arrayList);
//HashSet 출력
Iterator iterator = hash1.iterator();
while(iterator.hasNext()) {
System.out.println( iterator.next() );
}
}
}
[코드 실행결과]
A
B
C
D
E
F
728x90
반응형
'Language > Java' 카테고리의 다른 글
[Java] 개발자라면 알아야 할 Optional class?! (0) | 2023.04.11 |
---|---|
[Java] Generic, WildCard (<T>, <?>) (0) | 2023.04.10 |
Map을 Value값으로 정렬하기 (0) | 2023.03.19 |
Java Deque란?? (0) | 2022.12.14 |
멀티캠퍼스 15일차 (완) (0) | 2022.10.31 |
댓글