참고
1. List
- 순서가 있는 컬렉션이며 중복 요소를 포함할 수 있다.
- 인덱스로 모든 요소에 접근할 수 있다.
- 정렬:
- Collections.Sort()
- Arrays.sort()
- ArrayList, LinkedList
- https://devlog-wjdrbs96.tistory.com/64
2. Stack
- Stack 구현채를 사용한다.
3. Queue
- LinkedList 구현채를 사용한다.
- 우선순위 큐의 경우 PriorityQueue 구현채를 사용한다.
- PQ 사용 시 커스텀 class 를 사용하고 싶으면 아래 링크의 방법을 참고
- https://cjh5414.github.io/priorityqueue/
4. Map
- 주로 HashMap 사용? -> 그렇다
5. Set
- 중복 요소를 포함할 수 없으다.
- 랜덤 액세스(Random access)를 허용하지 않으므로, iterator 또는 foreach를 이용하여 요소를 탐색한다.
- HashSet
- 정렬을 해주지 않음?
- 1차적으로 HashTable형태 -> 동일한 hash값들에 대해선 별도의 tree로 관리하여 최적화
- 즉, 내부적으로 HashMap을 사용함
- TreeSet
- 오름차순으로 자동정렬
- 나는 이걸 많이 쓸듯...?(이게 c++의 set과 대응되어 보인다) => 아니다, 이것보다 HashSet이 조금 더 최적화가 되어있는 것으로 보인다.
- 오름차순으로 자동정렬
- LinkedHashSet
- 입력된 순서대로 데이터를 관리
- https://velog.io/@gillog/HashSet
'java > 기타' 카테고리의 다른 글
[java] 내부 클래스(static vs non-static) (0) | 2022.06.18 |
---|---|
Thread pool vs Reactive (0) | 2021.12.01 |
JDBC Connection pool 모니터링 지표에 대한 이해 (0) | 2021.12.01 |
java - Exception과 logging이 성능에 미치는 영향 (0) | 2021.10.08 |
java - InputStream& OutputStream close (0) | 2021.09.28 |
댓글