티스토리 뷰
이번 포스팅에서는 Java collection 에 대해 알아보자.
Java Collection Framework (JCF)
Java 에서 collection 이란 데이터의 집합, 그룹을 의미한다.
JCF 는 이러한 데이터, 자료구조인 collection 과 이를 구현하는 class 를 정의하는 interface 를 제공한다.
Collection
◼ ArrayList
Arraylist 는 List 인터페이스를 구현하며 Array 데이터 구조를 기반으로 한다. (배열이면서 List 성격을 가짐)
데이터의 저장순서가 유지되고 null 을 포함한 중복도 허용한다.
단방향 포인터 구조로 데이터의 순차적 접근에는 용이하나 용량을 변경할 경우 효율이 떨어진다.
◼ Vector
ArrayList 와 거의 같지만 동기화가 보장된다.
하지만, 동기화가 단일 스레드에서는 성능 저하가 있어서 스레드가 아닌 환경에서는 거의 사용하지 않는다.
◼ LinkedList
노드 (데이터와 링크를 거는 필드) 와 노드로 이루어져 있는 연결 리스트.
LinkedList 요소는 배열과 같은 인접한 위치에 저장되지 않으며 포인터를 사용하여 서로 연결된다.
LinkedList 의 각 요소에는 LinkedList 의 다음 요소에 대한 참조 (주소 / 포인터) 가 있다.
ArrayList 보다는 메모리를 더 많이 차지 하지만, 삽입, 삭제가 많은 경우 유용하다.
◼ PriorityQueue
일반적인 Queue 는 제일 먼저 들어간 데이터가 가장 먼저 나오는 구조지만, PriorityQueue 의 경우 들어간 순서에 상관 없이 우선순위에 따라 나오는 구조이다.
◼ HashSet
HashSet 은 해시 테이블 (실제로는 HashMap 인스턴스)을 기반으로 Set 인터페이스를 구현.
저장되는 데이터 순서를 알 수 없고, Set 계열에서 가장 빠르다.
기본적으로 동기화되지 않지만, 명시적으로 동기화 할 수 있다.
◼ TreeSet
TreeSet 은 HashSet 과 유사하지만, Red-Black 트리를 이용하기 때문에 항상 자동정렬되어 있다.
데이터가 항상 정렬이 완성된 상태이기 때문에 검색에 매우 유용하다.
◼ LinkedHashSet
LinkedHashSet 도 HashSet 및 TreeSet과 유사하지만, 입력된 순서대로 데이터를 관리한다.
Map
◼ Hashtable
Hashtable 은 동기화를 지원하며 HashMap 보다는 느리다.
키와 값으로 null 허용하지 않는다.
◼ LinedHashMap
HashMap 을 상속받는다.
Map 에 있는 엔트리들의 연결 리스트를 유지하여 입력한 순서대로 반복 가능하다.
◼ HashMap
Map 인터페이스를 구현하기 위해 해시 테이블을 사용한다<key, value=""><k, v="">.</k,></key,>
중복을 허용하지 않고 순서를 보증하지 않는다.
동기화되지 않고 키와 값으로 null 을 허용한다.
◼ TreeMap
TreeMap 은 Red-Black 트리 기반 NavigableMap 구현.
정렬된 순서로 키와 값을 저장하여 검색이 빠르다.
하지만, 정렬 때문에 저장시간이 다소 오래 걸린다.
'JAVA' 카테고리의 다른 글
Math 반올림, 올림, 내림 등 주요 메소드 정리 (0) | 2019.06.20 |
---|---|
JAVA data type (0) | 2019.01.30 |
StringUtils (V ~ Z) (0) | 2018.12.21 |
StringUtils (S ~ U) (0) | 2018.12.21 |
StringUtils (P ~ R) (0) | 2018.12.21 |
- Total
- Today
- Yesterday
- StartService
- task
- mPANDO
- onContextItemSelected
- Android Service
- 무료채굴
- bindservice
- BroadcastReceiver
- StringUtils
- 앱테크 추천
- RoomDatabase
- WEMIX
- 안드로이드 인텐트
- 무료 채굴
- 리워드 어플
- android task
- 채굴앱
- onCreateContextMenu
- task 생성
- android flag activity
- registerForContextMenu
- android intent
- 앱테크
- 안드로이드 서비스
- notifyDataSetChanged
- M2E
- android activity flag
- 리워드앱
- p2e
- Intent
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |