범위 검색과 정렬에 유리한 컬렉션 클래스
HashSet보다 데이터 추가, 삭제에 시간이 더 걸린다.
생성자는 지정된 컬렉션의 모든 객체를 저장한다
초기용량은 컬렉션 클래스들은 스스로 공간을 늘리는데 처음 용량을 얼마로 할지
로드팩터는 용량을 뭐…2배로 할건데 언제 할건지? 0.8이면 80% 찼을 때 2배로 늘림
retainAll()은 조건부 삭제로 차집합구할 때 쓴다
addAll() 은 합집합
removeAll() 은 교집합
예제)
하나는 문자열 객체, 하나는 인티저객체여서 중복이라고 보지않는다.
예제2)
Set은 정렬 불가! 왜냐하면 정렬이라는 말이 순서를 유지한다는 말이니까. 그래서 LinkedList로 만들거나 ArrayList로 만들어서 sort한다.
예제3)
예제)
오버라이딩을 해줘야 HashSet이 올바르게 동작한다.
예제)
더쉽게하는 방법
교집합: setA.retainAll(setB); 공통된 요소만 남기고 삭제
합집합: setA.addAll(setB); setB의 모든 요소를 추가(중복 제외)
차집합: setA.removeAll(setB); setB와 공통 요소를 제거