중복이 허용이 안되는 집합의 성질을 이용하여 옛날에 학창시절에 배웠던 교집합, 차집합, 합집합을 구해보자
.
.
package Set;
import java.util.*;
public class HashSetEx2 {
public static void main(String[] args) {
HashSet<String> setA = new HashSet<String>();
HashSet<String> setB = new HashSet<String>();
HashSet<String> setHab = new HashSet<String>();
HashSet<String> setKyo = new HashSet<String>();
HashSet<String> setCha = new HashSet<String>();
setA.add("1");
setA.add("2");
setA.add("3");
setA.add("4");
setA.add("5");
System.out.println("A = " + setA);
setB.add("4");
setB.add("5");
setB.add("6");
setB.add("7");
setB.add("8");
System.out.println("B = " + setB);
// 교집합 구하기
Iterator<String> it = setB.iterator();
while(it.hasNext()) {
String temp = (String) it.next();
if(setA.contains(temp)) { // 중복이 있는지 확인하기(생략가능)
setKyo.add(temp);
}
}
// 차집합 구하기
it = setA.iterator();
while(it.hasNext()) {
String temp = (String)it.next();
if(!setB.contains(temp)) { // 집합의 원소가 없을 경우
setCha.add(temp);
}
}
// 합집합 구하기
it = setA.iterator();
while(it.hasNext()) {
setHab.add(it.next());
}
it = setB.iterator();
while(it.hasNext()) { // 중복값은 입력이 안될 것이기 때문에 괜찮음
setHab.add(it.next());
}
System.out.println("A ∩ B = " + setKyo);
System.out.println("A ∪ B = " + setHab);
System.out.println("A - B = " + setCha);
}
}
.
.
728x90
반응형
'Java > 본격 Java 퀴즈 기초' 카테고리의 다른 글
[Java] Enumeration 실습 (0) | 2020.07.15 |
---|---|
[Java] TreeSet 활용하기 (0) | 2020.07.13 |
[Java] Stack을 이용하여 2진수 만들기 (0) | 2020.07.13 |
[Java] 도형의 성질을 이용하여 크기 조절하기(인터페이스) (0) | 2020.07.13 |
[Java] 점과 원 위치 이동하는 절차 인터페이스로 만들기 (0) | 2020.07.13 |