HashTable VS HashMap
λ©λͺ¨λ¦¬ λ΄μ key/value μ§μΌλ‘ λμ΄μλ λ°μ΄ν°μ΄λ€. λ λ°μ΄ν° νμ μ μ°¨μ΄μ μ μμλ³΄κ³ μ νλ€.
1. λΉμ·ν μ
- μΆκ°, μμ , μ κ·Όμ΄ λΉμ·νλ€.
- get() : ν€λ₯Ό ν΅ν΄ μμ΄ν κ²μ
- remove() : ν€λ₯Ό ν΅ν΄ μμ
- put() : μμ΄ν μ μΆκ°
- java.util ν¨ν€μ§ λ΄μ μν΄μλ€.
2. λ€λ₯Έ μ
- λ λ°μ΄ν° νμ μ λ§€μ° λ§μ λ€λ₯Έ μ μ΄ μ‘΄μ¬νμ§λ§, μ£Όλ κ² λͺ κ°μ§λ§ μμ보μ
- HashTable μ κ²½μ° μ묡μ μΌλ‘ λκΈ°νλμ΄ λ©ν° μ€λ λ νκ²½μμ λμνκΈ° μ©μ΄νλ€.
μμΈμ€ μ μ€λ λλ HashTable μ λ½ν΄ λ€λ₯Έ μ€λ λκ° λμμ λ³κ²½νλ κ²μ λ°©μ§νλ€.
λ°λλ‘ HashMap μ κ²½μ°μλ λ¨μΌ μ€λ λ νκ²½μμ μ ν©νλ€. λ§μ½ λ©ν° μ€λ λ νκ²½μμ HashMap μ μ¬μ©νκ³ μ νλ€λ©΄
ConcurrentHashMap μ μ¬μ©ν μ μλ€.
- HashTable μ κ²½μ° λ¨μΌ μ€λ λ νκ²½μμλ κ° λ©μλ νΈμΆν λ μ묡μ μΌλ‘ λκΈ°νλ₯Ό νκΈ° λλ¬Έμ HashMap λ³΄λ€ λ리λ€.
- HashMap μ Null μ μ μ₯ν μ μμ§λ§, HashTable μ μ μ₯ν μ μλ€.
- HashMap μ κ²½μ° fail-fast λ‘ κ³ λ €λμ΄μ§λ Iterator μ μ¬μ©ν μ μλ€. μ¦, iterator νκ³ μλ λμ€μ
λ€λ₯Έ μ€λ λκ° Map μ λ³κ²½ν κ²½μ° ConcurrentModificationException μ λμ§λ€. νμ§λ§, HashTable μ κ²½μ° fail-fast κ° μλ Enumerator λ‘ μννλ€.
- HashMap μ κ²½μ° LinkedHashMap κ³Ό TreeMap μ ꡬνν¨μΌλ‘μ¨ μ λ ¬μ΄ κ°λ₯νμ§λ§, HashTable μ κ·Έλ μ§ λͺ»νλ€.
κ²°κ΅ HashTable μ deprecate λκ±°λ 곡μμ μΌλ‘ ConcurrentHashMap μΌλ‘ λ체λλ€κ³ ν©λλ€.
HashTable μ κ²½μ° μ’ μμνμ΅λλ€. ConcurrentHashMap μ μ¬μ©ν΄λ³Έ μ μ΄ μμ§λ§μ.
μ΄μ°λ³΄λ©΄ μ°¨μ΄μ μ λκΈ°ν λΌκ³ λ³Ό μλ μμ κ² κ°μλ°, κ·Έκ²λ ConcurrentHashMap μ΄ λμ€λ©΄μ ν΄κ²°μ΄ λ λλμ΄λ€μ.
κ·Έλ¬λ©΄ λλ μκ°μ HashTable vs ConcurrentHashMap μΈλ°μ. μ΄ λΆλΆλ λμ€μ μ°Ύμλ΄μΌκ² κ΅°μ.
[μΆμ²] - https://www.programmergate.com/hashtable-vs-hashmap/