본문 바로가기

Java

Java Collection

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 자료구조와 기능이 같다.