STUDY/JAVA

Java Collections

티앤모이 2023. 10. 30. 15:17

Java Collection Framework (JCF)

: Java에서 데이터를 저장하는 기본적인 자료구조들을 한 곳에 모아 관리하고 편하게 사용하기 위해서 제공하는 것을 의미한다. 다음은 JCF의 상속 구조이며 사용 용도에 따라 List, Set, Map 3가지로 요약할 수 있다.

  • 각 인터페이스의 특징
인터페이스 구현 클래스 특징
List LinkedList
Stack
Vector
ArrayList
순서가 있는 데이터의 집합, 데이터의 중복을 허용한다.
Set HashSet
TreeSet
순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않는다.
Map HashMap
TreeMap
HashTable
Properties
키(key)와 값(value)의 쌍으로 이루어진 데이터의 집합이다.
순서는 유지되지 않고, 키는 중복을 허용하지 않으며 값의 중복을 허용하지 않는다.
  • Collection Interface

모든 컬렉션의 상위 인터페이스로서 컬렉션들이 갖고 있는 핵심 메소드를 선언 (add, contain, isEmpty, remove, size, iterator...)

 

  • List Interface

Collection 인터페이스를 확장한 자료형으로 요소들의 순서를 저장하여 색인(Index)를 사용하여 특정 위치에 요소를 삽입하거나 접근할 수 있으며 중복 요소 허용

 

- ArrayList

  1. 상당히 빠르고 크기를 마음대로 조절할 수 있는 배열
  2. 단방향 포인터 구조로 자료에 대한 순차적인 접근에 강점이 있음

- Vector

  1. ArrayList의 구형버전이며, 모든 메소드가 동기화되어 있음
  2. 잘 쓰이진 않음

 

- LinkedList

  1. 양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우 빠른 성능을 보장
  2. 스택, 큐, 양방향 큐 등을 만들기 위한 용도로 쓰임

 

  • Set Interface
  1. 집합을 정의하며 요소의 중복을 허용하지 않음

 

- HashSet

  1. 가장 빠른 임의 접근 속도
  2. 순서를 전혀 예측할 수 없음

 

- LinkedHashSet

  1. 추가된 순서, 또는 가장 최근에 접근한 순서대로 접근 가능

 

-  TreeSet

  1. 정렬된 순서대로 보관하며 정렬 방법을 지정할 수 있음

 

  • Map Interface
  1. Key와 Value의 쌍으로 연관지어 저장하는 객체

 

  • HashMap
  1. Map 인터페이스를 구현하기 위해 해시테이블을 사용한 클래스
  2. 중복을 허용하지 않고 순서를 보장하지 않음
  3. 키와 값으로 null이 허용

 

  • HashTable
  1. HashMap보다는 느리지만 동기화가 지원
  2. 키와 값으로 null이 허용되지 않음

 

  • LinkedHashMap
  1. 기본적으로 HashMap을 상속받아 HashMap과 매우 흡사
  2. Map에 있는 엔트리들의 연결 리스트를 유지되므로 입력한 순서대로 반복 가능

 

 

 

https://hackersstudy.tistory.com/26

 

Java의 Collections (List, Set, Map) 이해

Java Collection Framework (JCF) : Java에서 데이터를 저장하는 기본적인 자료구조들을 한 곳에 모아 관리하고 편하게 사용하기 위해서 제공하는 것을 의미한다. 다음은 JCF의 상속 구조이며 사용 용도에

hackersstudy.tistory.com