μλ°μμ 컬λ μ νλ μμν¬λ, λ€μμ λ°μ΄ν°λ₯Ό μ½κ³ ν¨κ³Όμ μΌλ‘ μ²λ¦¬ν μ μλ νμ€νλ λ°©λ²μ μ 곡νλ ν΄λμ€μ μ§ν©μ μλ―Ένλ€. (λ°°μ΄μ λ¨μ μ 보μν΄μ€λ€)
JDK 1.2 μ΄μ κΉμ§λ 컬λ μ ν΄λμ€λ€μ μλ‘ κ°μ λ€λ₯Έ λ°©μμΌλ‘ μ²λ¦¬ν΄μΌ νμΌλ JDK 1.2λΆν° 컬λ μ νλ μμν¬κ° λ±μ₯νλ©΄μ λ€μν μ’ λ₯μ 컬λ μ ν΄λμ€κ° μΆκ°λκ³ λͺ¨λ 컬λ μ ν΄λμ€λ₯Ό νμ€νλ λ°©μμΌλ‘ λ€λ£° μ μλλ‘ μ²΄κ³ν λμλ€.
μ΄λ¬ν 컬λ μ νλ μμν¬λ μλ°μ μΈν°νμ΄μ€(interface)λ₯Ό μ¬μ©νμ¬ κ΅¬νλλ€.
컬λ μ (Collection) : μ¬λ¬ κ°μ²΄(λ°μ΄ν°)λ₯Ό λ΄μ μ μλ μλ£κ΅¬μ‘°, λ€μμ λ°μ΄ν° κ·Έλ£Ή
νλ μμν¬ (Framework) : νμ€ν, μ ννλ 체κ³μ μΈ νλ‘κ·Έλλ° λ°©μ
- 컬λ μ μΈν°νμ΄μ€ : java.util ν¨ν€μ§ μμ μμ
- 컬λ μ ν΄λμ€ : 컬λ μ μΈν°νμ΄μ€λ₯Ό μμλ°κ³ java.util λλ java.util.concurrent ν¨ν€μ§ μμ μμ
- 컬λ μ μκ³ λ¦¬μ¦ : κ²μ, μ λ ¬, μ νκ³Ό κ°μ κΈ°λ₯μ μ 곡
μ λ€λ¦(Generics)μΌλ‘ ννλμ΄ μ»΄νμΌ μμ μμ κ°μ²΄μ νμ μ 체ν¬νκΈ° λλ¬Έμ μλ¬λ₯Ό μ€μ΄λλ° λμμ΄λλ€.
μΈν°νμ΄μ€λ₯Ό ν¬κ² 3κ°μ§λ‘ λΆλ₯ ν μ μλ€.
Collection μΈν°νμ΄μ€ κ·Έλ£Ή / Map μΈν°νμ΄μ€ κ·Έλ£Ή / κΈ°ν μΈν°νμ΄μ€ κ·Έλ£Ή
컬λ μ νλ μμν¬μ ν΅μ¬ μΈν°νμ΄μ€(List/Set/Map)
List, Set μΈν°νμ΄μ€λ Collection μΈν°νμ΄μ€λ₯Ό μμλ°κΈ° λλ¬Έμ λ μΈν°νμ΄μ€μ 곡ν΅μ μΈ λΆλΆμ Collection μΈν°νμ΄μ€μμ μ μνκ³ μλ€.
λ°λ©΄ Map μΈν°νμ΄μ€λ ꡬ쑰μμ μ°¨μ΄(Key-Value)λ‘ μΈν΄ Collection μΈν°νμ΄μ€λ₯Ό μμλ°μ§ μκ³ λ³λλ‘ μ μλλ€.
- Collection μΈν°νμ΄μ€ κ·Έλ£Ή
-
Collection Interface
μ§μ μ μΈ κ΅¬νμ μ 곡νμ§ μμΌλ©° λͺ¨λ 컬λ μ ν΄λμ€κ° ꡬνν΄μΌνλ λ©μλλ₯Ό ν¬ν¨νκ³ μλ€.
-
List Interface (μμ O, μ€λ³΅ O)
μμκ° μλ 컬λ μ μ΄λ©° μ€λ³΅ μμλ₯Ό ν¬ν¨ ν μ μμΌλ©° μΈλ±μ€λ‘ λͺ¨λ μμμ μ κ·Όν μ μλ€.
ArrayList class
,LinkedList class
λ List μΈν°νμ΄μ€λ‘ ꡬνλμλ€.
-
Set Interface (μμ X, μ€λ³΅ X)
μ€λ³΅ μμλ₯Ό ν¬ν¨ν μ μμΌλ©° λλ€ μ‘μΈμ€λ₯Ό νμ©νμ§ μμ iterator λλ foreachλ₯Ό μ΄μ©νμ¬ μμλ₯Ό νμν μ μλ€.
HashSet class
,TreeSet class
,LinkedHashSet class
λ Set μΈν°νμ΄μ€λ‘ ꡬνλμλ€.
-
SortedSet Interface
μμλ₯Ό μ€λ¦μ°¨μμΌλ‘ μ μ§νλ Setμ΄λ€.
TreeSet class
λ SortedSet μΈν°νμ΄μ€λ‘ ꡬν λμλ€. -
Queue Interface
Queue μΈν°νμ΄μ€λ μ²λ¦¬νκΈ° μ μ μμλ₯Ό 보μ νλ λ°μ μ¬μ©λλ€. κΈ°λ³Έ 컬λ μ μμ μΈμλ μ½μ , μΆμΆ λ° κ²μ¬ μμ μ μ 곡νλ€.
μΌλ°μ μΌλ‘ Queueλ μμλ₯Ό FIFO λ°©μμΌλ‘ μ λ ¬νλ©° μμΈμλ μ°μ μμ νκ° μλ€.
PriorityQueue class
λ QueueμΈν°νμ΄μ€λ‘ ꡬνλμλ€. -
Deque Interface
μμͺ½ λμ μμ μ½μ λ° μ κ±°λ₯Ό μ§μνλ€.
double ended queue
μ μ½μμ΄λ©° λ°ν¬λΌκ³ μ½λλ€.ArrayDeque class
λ Deque μΈν°νμ΄μ€λ‘ ꡬνλμλ€.
- Map μΈν°νμ΄μ€ κ·Έλ£Ή
-
Map Interface (μμ X, μ€λ³΅(ν€ X, κ° O))
Map μΈν°νμ΄μ€λ ν€μ κ°μ 맀ννλ€. μ€λ³΅ ν€κ° μ‘΄μ¬ν μ μμΌλ©° κ° ν€λ νλμ κ°λ§ 맀ν ν μ μλ€.
HashMap class
,TreeMap class
,LinkedHashMap class
λ Map μΈν°νμ΄μ€λ‘ ꡬνλμλ€.
-
SortedMap Interface
SortedMap μΈν°νμ΄μ€λ μ€λ¦μ°¨μμ ν€ μμλ‘ λ§€ννλ μΈν°νμ΄μ€μ΄λ€.
TreeMap class
λ SortedMap μΈν°νμ΄μ€λ‘ ꡬνλμλ€.
- κΈ°ν μΈν°νμ΄μ€ κ·Έλ£Ή
-
Iterator Interface
Iterator μΈν°νμ΄μ€λ μ΄λ€ 컬λ μ μ΄λ λ°λ³΅μ μΌλ‘ μννκΈ° μν λ©μλλ₯Ό μ 곡νλ€.
-
ListIterator Interface
ListIterator μΈν°νμ΄μ€λ μ΄λ λ°©ν₯μ΄λ λͺ©λ‘μ νμνκ³ λ°λ³΅νλ©΄μ λͺ©λ‘μ μ νκ³ , λͺ©λ‘μμ λ°λ³΅μμ νμ¬ μμΉλ₯Ό κ°μ Έμ¬ μ μλ€.
-
Concurrent Interface
- BlockingQueue μΈν°νμ΄μ€
- TransferQueue μΈν°νμ΄μ€
- BlockingDeque μΈν°νμ΄μ€
- ConcurrentMap μΈν°νμ΄μ€
- ConcurrentNavigableMap μΈν°νμ΄μ€
컬λ μ μΈν°νμ΄μ€μ λν ꡬν ν΄λμ€ μ 곡
컬λ μ | νΉμ§ |
---|---|
ArrayList | λ°°μ΄κΈ°λ°, λ°μ΄ν°μ μΆκ°μ μμ μ λΆλ¦¬, μμ°¨μ μΈ μΆκ°/μμ λ μ μΌ λΉ λ¦, μμμ μμμ λν μ κ·Όμ±μ΄ λ°μ΄λ¨ |
Linked List | μ°κ²°κΈ°λ°, λ°μ΄ν°μ μΆκ°μ μμ μ μ 리, μμμ μμμ λν μ κ·Όμ±μ΄ μ’μ§ μλ€. |
HashMap | λ°°μ΄κ³Ό μ°κ²°μ΄ κ²°ν©λ νν, μΆκ°/μμ /κ²μ/μ κ·Όμ±μ΄ λͺ¨λ λ°μ΄λ¨, κ²μμλ μ΅κ³ μ±λ₯μ 보μΈλ€. |
TreeMap | μ°κ²°κΈ°λ°, μ λ ¬κ³Ό κ²μ(νΉν λ²μκ²μ)μ μ ν©, κ²μ μ±λ₯μ HashMap λ³΄λ€ λ¨μ΄μ§λ€. |
HashSet | λ΄λΆμ μΌλ‘ HashMapμ μ΄μ©ν΄μ ꡬν |
TreeSet | λ΄λΆμ μΌλ‘ TreeMapμ μ΄μ©ν΄μ ꡬν |
LinkedHashMap | HashMapμ μ μ₯μμ μ μ§κΈ°λ₯μ μΆκ° |
LinkedHashSet | HashSetμ μ μ₯μμ μ μ§κΈ°λ₯μ μΆκ° |
-
μΌλ°μ μΌλ‘ μ°μ΄λ ν΄λμ€
ArrayList, LinkedList, HashSet, TreeSet, PriorityQueue, ArrayDeque, HashMap, TreeMap, LinkedHashMap
-
Concurrent ν΄λμ€
CopyOnWriteArrayList, ConcurrentHashMap, CopyOnWriteArraySet
-
Legacy ν΄λμ€
Vector, Stack, Dictionary, Hashtable, Properties
-
Abstract ν΄λμ€
AbstractList, AbstractSequenctailList, AbstractSet, AbstractQueue
ArrayListμ Vector μ°¨μ΄
μ°Έκ³ : https://yeolco.tistory.com/94
HashMap/HashSetμ μ리
μ°Έκ³ : https://papimon.tistory.com/74
Collections ν΄λμ€λ λͺ¨λ 컬λ μ μ μκ³ λ¦¬μ¦μ λ΄λΉνλ€.
μ νΈλ¦¬ν° ν΄λμ€λ‘μ¨ static λ©μλλ‘ κ΅¬μ±λμ΄ μκ³ μ»¬λ μ λ€μ 컨νΈλ‘€νλλ°μ μ¬μ©λλ€.
μ£Όμν μ μ μλ°μ Collectionμ μΈν°νμ΄μ€μ΄λ©°, Collectionsλ ν΄λμ€λΌλ μ μ΄λ€.
- μ λ ¬(Sorting) : μ λ ¬ μκ³ λ¦¬μ¦μ μμκ° μ€λ¦μ°¨μμ΄ λλλ‘ λ¦¬μ€νΈλ₯Ό μ¬ μ λ ¬ν¨
- μ νλ§(Shuffling) : μ νλ§ μκ³ λ¦¬μ¦μ λλ€μΌλ‘ λͺ©λ‘μ μ¬ μ λ ¬ν¨ (μ°μ°ν κ²μμ ꡬνν λ μ μ©)
- νμ (Searching) : μ΄μ§ κ²μ μκ³ λ¦¬μ¦μ μ λ ¬λ λͺ©λ‘μμ μ§μ λ μμλ₯Ό κ²μ