SMALL
컬렉션(Collection)
자바에서 데이터를 저장하는 기본적인 자료구조를 모아서 편하게 사용하기 위해 컬렉션을 제공한다.
인터페이스 |
구현 클래스 |
특징 |
List |
LinkedList Stack Vector ArrayList |
순서가 있는 데이터의 집합이고, 데이터 중복을 허용 |
Set |
HashSet TreeSet |
순서가 없는 데이터의 집합이고, 데이터 중복을 허용하지 않는다. |
Map |
HashMap TreeMap HashTable Properties |
키와 값의 쌍으로 이루어진 데이터의 집합이고, 데이터의 순서가 없고, 키는 중복을 허용하지 않고 값의 중복은 허용 |
Collection Interface
모든 컬렉션의 상위 인터페이스로 add,isEmpty,size 같은 핵심 메소드를 선언
List Interface
- LinkedList
양방향 포인터 구조로 데이터 삽입, 삭제가 빈번할 경우 성능이 좋음
- Stack
- Vector
ArrayList의 구형 버전이고, 모든 메소드가 동기화 되어 있음
- ArrayList
속도가 빠르며 크기를 마음대로 조절할 수 있는 배열이며 단방향 포인터 구조로 자료에 대한 순차적 접근에 강점이 있음
Set Interface
- HashSet
가장 빠른 임의 접근 속도를 가지고 있으며 순서를 예측 할 수 없음
- TreeSet
정렬된 순서대로 보관하여 정렬 방법을 지정 할 수 있음
- LinkedHashSet
가장 최근에 접근한 순서 또는 추가된 순서로 접근 가능
Map Interface
- HashMap
중복을 허용하지 않고 순서를 보장 할 수 없고, 키와 값으로 null 허용
- TreeMap
BST 형태로 키와 값으 쌍으로 이루어진 데이터를 저장하며 정렬된 순서로 키와 값을 저장하므로 빠른 검색이 가능하며 저장시 정렬(오름차순)하기 때문에 시간이 오래 걸림
- HashTable
HashMap 보다 느리지만 동기화를 지원하고 키와 값으로 null 허용 하지 않음
- LinkedHashMap
HashMap을 상속받아 사용하므로 HashMap과 유사하며, Map에 있는 엔트리들의 연결 리스트를 유지하므로 입력한 순서대로 반복 가능
LIST
'전공 > JAVA' 카테고리의 다른 글
JNI (0) | 2020.06.24 |
---|---|
try-with-resource (0) | 2018.07.08 |
JVM (0) | 2018.05.02 |
접근제어자 (0) | 2018.05.02 |
오버라이딩과 오버로딩 (0) | 2017.11.24 |