Set - 합처럼 중복되지 않는 원소들의 모음을 만들 수 있는 자료구조
Set에는 크게 TreeSet, HashSet, LinkedHashSetdl 있음
특징
import java.util.HashSet;
//HashSet의 생성
HashSet<String> set = new HashSet<>();
// 데이터 삽입
set.add("코드라떼");
// 값 포함 여부 확인
set.contains("코드라떼"); //true
// 데이터 삭제
set.remove("코드라떼");
// 데이터 출력
for (String value : set) { // 정렬 X
System.out.println(value);
}
특징
import java.util.TreeSet;
//TreeSet의 생성
TreeSet<String> set = new TreeSet<>();
// 데이터 삽입
set.add("코드라떼");
// 값 포함 여부 확인
set.contains("코드라떼");
// 데이터 삭제
set.remove("코드라떼");
// 출력
for (String value : set) { //저장된 값은 오름차순으로 정렬되어 출력
System.out.println(value);
}
특징
import java.util.LinkedHashSet;
//LinkedHashSet의 생성
LinkedHashSet<String> set = new LinkedHashSet<>();
//데이터 삽입
set.add("코드라떼");
//값 포함 여부 확인
set.contains("roka");
// 데이터 삭제
set.remove("카페라떼");
// 출력
for (String value : set) { // 저장된 순서대로 출력
System.out.println(value);
}
// A 집합
List<String> set1 = Arrays.asList("1", "2", "3", "4", "5");
TreeSet<String> A = new TreeSet<>(set1);
// B 집합
List<String> set2 = Arrays.asList("3", "4", "5", "6", "7");
TreeSet<String> B = new TreeSet<>(set2);
// C 집합
List<String> set3 = Arrays.asList("3", "4");
TreeSet<String> C = new TreeSet<>(set3);
//부분집합
B.containsAll(C) //C가 B의 부분집합인지
B.contains("7") //B가 7을 포함하는지
//교집합 원본의 데이터를 변경 (원본데이터 손실 원하지 않으면 원본 복사 필요)
TreeSet<String> cloneA = new TreeSet<>(set1);
boolean isModified = cloneA.retainAll(B); //cloneA 변경 여부 반환
//합집합 원본의 데이터를 변경 (원본데이터 손실 원하지 않으면 원본 복사 필요)
cloneA.addAll(B);
//차집합 원본의 데이터를 변경 (원본데이터 손실 원하지 않으면 원본 복사 필요)
cloneA.removeAll(B);