Set의 필요성
- Collection을 확장한 배열과 비슷한 역할을 하는 3개의 인터페이스(List, Set, Queue)가 있다.
- Set은 순서에 상관없이 데이터의 존재 유무를 확인하는 용도로 사용된다.
Set의 주요 클래스
- HashSet : 순서가 필요 없는 데이터를 해시 테이블에 저장한다. Set 중에 성능이 가장 좋다.
- TreeSet: 저장된 데이터의 값에 따라 정렬된다. HashSet보다 약간 느리다.
- LinkedHashSet: 저장된 순서에 따라 정렬된다. 3개 중 가장 느리다.
HashSet
- 로드팩터 = (데이터의 개수) / (저장 공간)
- 로드 팩터가 클수록 공간은 넉넉해지지만 데이터를 찾는 시간이 증가한다.
- 주요 메소드로는 add(), contains(), remove(), size(), isEmpty() 있다.
LinkedList
- Java 1.2에 추가되었다.
- 데이터의 추가및 삭제가 많을 때는 위치가 있는 ArrayList보다 효율적이다.
- LinkedList는 List, Queue, Deque 인터페이스를 구현하고 있다.
- Deque(Double Ended Queue)는 Java6에서 추가되었다. (발음은 'deck'이다.)
- 혼동을 피하기 위해 addFirst(), addLast() 메소드를 위해 데이터를 추가하는 게 좋을 것 같다.
- add() 메소드의 경우 원하는 위치에 넣을 때만 사용하는 게 좋을 것 같고, 그냥 데이터만 전달하면 addLast() 메서드처럼 동작한다.
- 데이터를 찾을때는 getFirst(), peekFirst(), getLast(), peekLast()를 사용하는 게 좋을 것 같다.
- 데이터를 삭제할때는 removeFirst(), removeLast()를 사용하는 게 좋을 것 같다.
'RETROSPECT' 카테고리의 다른 글
유스콘 2021 Spring Boot TDD Start! 회고 (2) | 2022.01.09 |
---|---|
그림으로 배우는 Http&Network Basic 회고 (0) | 2022.01.08 |
[자바의신2 21장] 회고 (0) | 2021.10.01 |
[당신은 다른 사람의 성공에 기여한 적 있는가?] 회고 (0) | 2021.09.30 |
[자바의신2 20장] 회고 (0) | 2021.09.25 |