HashSet과 TreeSet - 순서 X, 중복 X
HashSet
-Set 인터페이스를 구현한 대표적인 컬렉션 클래스
-Set 은 순서 유지가 X, 순서를 유지하려면 LinkedHashSet 클래스를 사용하면 된다.
TreeSet
-범위 검색과 정렬에 유리한 컬렉션 클래스
-HashSet보다 데이터 추가, 삭제에 시간이 더 걸린다.
<HashSet 주요 메서드>
-추가
boolean add()
boolean addAll() : 합집합
boolean remove : 삭제
boolean removeAll() : 교집합
boolean retainAll() : 차집합, 조건부삭제
void clear() : 모두 삭제
boolean contains() : 포함되어 있는지
boolean containsAll() : 컬렉션에 담긴 객체가 모두 포함되어 있는지
lterator iterator()
boolean isEmpty() : 비었는지
?int size() : 저장된 객체 수
Object[] toArray() : 객체 배열로 반환
<예제 1>
->HashSet은 중복을 허용하지 않지만
"1", new Integer(1)은 다른 객체이기 때문에 1이 두 개 출력된다.
->set.add를 출력해보면 순서를 유지하지 않고 중복을 허용하지 않기 때문에
중복되는 숫자에서는 false가 출력된다.
예제 2
-HashSet은 객체를 저장하기 전에 기존에 같은 객체가 있는지 확인,
같은 객체가 없으면 저장하고 있으면 저장하지 않는다.(중복X)
-boolean add(Object o)는 저장할 객체의 equals()와 hashCode()를 호출,
equals()와 hashCode()가 오버라이딩 되어 있어야 한다!!!
->오버라이딩을 안해서 David:10이 두 번 저장됐다.
오버라이딩 해준다.
->중복 제거되고 한 번만 나온다.
'📒 education archive > 🎀JAVA' 카테고리의 다른 글
자바 공부 기록(14)-지네릭스, 지네릭 타입과 다형성 (0) | 2021.08.20 |
---|---|
자바 공부 기록(13)-TreeSet, 예제 (0) | 2021.08.19 |
자바 공부 기록(11)-LinkedList, ArrayList와 비교 (0) | 2021.08.19 |
자바 공부 기록(10)-컬렉션 프레임웍,ArrayList (0) | 2021.08.19 |
자바 공부 기록(9)-쓰레드 (0) | 2021.08.14 |