Java에는 List, Map, Set 인터페이스를 기준으로 여러 구현체가 존재한다. C++에도 이와 비슷하게 Standard Template Library가 존재하는데, 사용자가 구현하지 않고 미리 만들어둔 구현체를 사용하여 자료구조를 사용할 수 있도록 한다.
대표적으로 몇 가지 알아보자.
- List
- List인터페이스를 직접 @Override를 통해 사용자가 정의하여 사용할 수 있고, 대표적인 구현체로 ArrayList가 존재한다. 이외에 LinkedList 등의 구현체가 있다.
- Map
- 대표적인 구현체로 HashMap이 존재한다. 그런데 멀티스레드 환경에서 문제가 있기 때문에 이를 위해 ConCurrentHashMap이 있다.
- Set
- 대표적인 구현체로 HashSet이 존재한다. Value에 대해 중복된 값을 저장하지 않는 Set 자료구조의 특성을 지닌다. 또한 순서를 보장해주기 위해선 LinkedHashSet이란 별도의 자료구조를 사용한다.
- Stack과 Queue
- 우리가 알고 있는 일반적인 Stack, Queue 자료구조와 기능이 같다.
'Java' 카테고리의 다른 글
Java의 static method는 왜 오버라이딩 되지 않는가 (0) | 2022.01.23 |
---|---|
오늘의 질문 : Java의 Enum은 왜 생성자가 있는가? (0) | 2021.08.17 |
자바 어노테이션 (0) | 2021.07.08 |
모던 자바인액션 1장 (0) | 2021.06.26 |
자바 빌더(Builder) 패턴 + lombok (0) | 2021.03.25 |