Map
ν€(Key)μ κ°(Value)μ νλμ μμΌλ‘ λ¬Άμ΄ μ μ₯νλ μλ£ κ΅¬μ‘°λ‘, ν€λ₯Ό ν΅ν΄ κ°μ λΉ λ₯΄κ² νμνλ λ° μ΅μ νλμ΄ μλ€.

Map Interface
Map μΈν°νμ΄μ€λ Listλ Setκ³Όλ λ¬λ¦¬ Collection μΈν°νμ΄μ€λ₯Ό μμλ°μ§ μλλ€.
νλμ μ(pair)μ
μνΈλ¦¬(Entry)λΌκ³ λΆλ₯΄λ©°,Mapμ μ΄Entryκ°μ²΄λ€μ κ΄λ¦¬ν€(Key)λ
Mapλ΄μμ μ μΌν΄μΌ νλ©°(μ€λ³΅ λΆκ°), κ°(Value)μ μ€λ³΅ κ°λ₯Mapμ체λ μν(iteration)λ₯Ό μ§μ μ§μνμ§ μμΌλ―λ‘, ν€λ κ°μ μ§ν©μ μ»μ΄μ μνν΄μΌ ν¨keySet():Mapμ λͺ¨λ ν€λ₯ΌSetννλ‘ λ°νvalues():Mapμ λͺ¨λ κ°μCollectionννλ‘ λ°νentrySet():Mapμ λͺ¨λEntry(ν€-κ° μ)λ₯ΌSetννλ‘ λ°ν
Map νμ Class νΉμ§
HashMap
AbstractMap
Map
X
O(1)
TreeMap
SortedMap
NavigableMap
O
O(log n)
LinkedHashMap
HashMap
Map
O
O(1)
HashMap
HashMapμ ν΄μ ν
μ΄λΈ(Hash Table) μλ£κ΅¬μ‘°λ₯Ό κΈ°λ°μΌλ‘ ꡬνλμλ€.
λ΄λΆμ μΌλ‘
Entryκ°μ²΄λ₯Ό μ μ₯νλ λ°°μ΄(ν΄μ λ²ν·)μ μ¬μ©put(key, value)λ©μλ νΈμΆ μ,keyκ°μ²΄μhashCode()λ©μλλ₯Ό κΈ°λ°μΌλ‘ ν΄μ κ° κ³μ°equals()μhashCode()λ©μλλ₯Ό μ¬λ°λ₯΄κ² μ¬μ μ(override)ν΄μΌ μλλλ‘ λμ
ν΄μ μΆ©λ
Java 8 μ΄μ : μ°κ²° 리μ€νΈ(Separate Chaining) λ°©μμΌλ‘ μΆ©λ μ²λ¦¬
Java 8 μ΄ν: μΆ©λμ΄ μ¬ν κ²½μ°, μ°κ²° 리μ€νΈλ₯Ό
λ λ-λΈλ νΈλ¦¬(Red-Black Tree)κ΅¬μ‘°λ‘ λ³ννμ¬ λ°μ΄ν° κ΄λ¦¬
TreeMap
TreeMapμ Red-Black TreeλΌλ μ΄μ§ κ²μ νΈλ¦¬(Binary Search Tree)λ₯Ό κΈ°λ°μΌλ‘ ꡬνλμλ€.
λ°μ΄ν°λ₯Ό μ μ₯ν λ ν€(Key) κ°μ κΈ°μ€μΌλ‘ μλ μ λ ¬
κ°μ²΄λ
ComparableμΈν°νμ΄μ€λ₯Ό ꡬν(μμ° μ λ ¬)νκ±°λ,TreeMapμμ± μComparatorꡬν νμ
LinkedHashMap
LinkedHashMapμ HashMapμ μμλ°μ, ν΄μ ν
μ΄λΈμ μ₯μ κ³Ό μ°κ²° 리μ€νΈμ μ₯μ μ κ²°ν©ν μλ£κ΅¬μ‘°λ€.
HashMapκ³Ό λμΌνκ² ν΄μ ν μ΄λΈμ κΈ°λ°μΌλ‘ λμλ΄λΆμμ
μλ°©ν₯ μ°κ²° 리μ€νΈλ₯Ό μ¬μ©νμ¬ λͺ¨λEntryλ₯Ό μ°κ²°νμ¬ λ°μ΄ν°κ° μ½μ λ μμλ₯Ό μ μ§μ½μ λ μμ(Insertion Order)λλ‘ μν κ°λ₯
μμ±μ μ΅μ μ ν΅ν΄ μ΅κ·Ό μ κ·Ό μμ(Access Order)λ‘ μμλ₯Ό μ μ§νλλ‘ μ€μ κ°λ₯
LRU(Least Recently Used) μΊμ ꡬνμ μ μ©
Last updated
Was this helpful?