๋ณธ ํฌ์คํธ๋
์๋ฐ์ ์ Vol.2
์ด์๋ฏผ ์ ์ ๋ด์ฉ์ ์ ๋ฆฌํ ํฌ์คํธ์ ๋๋ค
๋ ์์ธํ ๋ด์ฉ๊ณผ ๊น์ด ์๋ ๋ด์ฉ์ ์ฑ ์ ์์ต๋๋ค.
์๋ฐ์์ Map์ Key์ Value์ ์์ผ๋ก ์ด๋ฃจ์ด์ง ์๋ฃ๊ตฌ์กฐ์
๋๋ค.
Collection๊ณผ ๋น๊ตํ Map์ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค
๋จผ์ ์์ Collection Post์์ ๋ณธ ๊ฒ ์ฒ๋ผ, Map์ ๊ตฌํํ๋ ์ธํฐํ์ด์ค๋
๊ทธ ์ฉ๋์ ๋ฐ๋ผ HashMap, TreeMap, LinkedHashMap์ด ์กด์ฌํ๋ฉฐ ์ถ๊ฐ์ ์ผ๋ก
Hashtable ํด๋์ค๋ ์กด์ฌํ์ง๋ง Collection์ Vector์ ๊ฐ์ด ์๋ฐ์์๋
Vector์ ์์ํธํ๊ฒฉ ArrayList๋ Hashtable์ ์์ํธํ๊ฒฉ HashMap ์ฌ์ฉ์ ๊ถ์ฅํฉ๋๋ค
๋ค๋ง Vector๋ Hashtable์ Thread Safe
๋ฅผ ์ง์ํ๋ค๋ ์ ์ด ์กฐ๊ธ ๋ค๋ฅธ๋ฐ
์๋ฐ ๊ณต์ ๋ฌธ์์์๋ Thread Safe
๋ฅผ ์ํ๋ค๋ฉด Concurrentํ๊ฒ ArrayList๋
HashMap์ ์ ์ธํ์ฌ ์ฌ์ฉํ ๊ฒ์ ๊ถ์ฅํ๊ณ ์์ต๋๋ค.
์์ ํน์ง๊ณผ ํจ๊ป, Hashtable๊ณผ Map์ ์ฐจ์ด์ ์ ๋ ์ค๋ช ํ์๋ฉด
๋งต Interface์ ์กด์ฌํ๋ ๋ฉ์๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค
๋ฆฌํด ํ์ | ๋ฉ์๋ ์ด๋ฆ ๋ฐ ๋งค๊ฐ ๋ณ์ | ์ค๋ช |
---|---|---|
V | put(K key, V value) | ๋งค๊ฐ ๋ณ์์ธ ํค์ ๊ทธ์ ๋์๋๋ Value๋ฅผ ๊ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค |
void | putAll(Map< ? extends K, ? extends V> m) | ๋งค๊ฐ ๋ณ์ m์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค |
V | get(Object key) | ๋งค๊ฐ ๋ณ์๋ก ๋์ด์จ ํค์ ํด๋นํ๋ ๊ฐ V๋ฅผ ๋ฆฌํดํฉ๋๋ค |
V | remove(Object key) | ๋งค๊ฐ ๋ณ์๋ก ๋์ด์จ ํค์ ํด๋นํ๋ ๊ฐ V๋ฅผ ์ ๊ฑฐํ๊ณ ๋ฆฌํดํฉ๋๋ค |
Set< K > | keySet() | ํค์ ๋ชฉ๋ก์ Set ํ์ ์ผ๋ก ๋ฆฌํดํฉ๋๋ค |
Collection< V > | values() | ๊ฐ์ ๋ชฉ๋ก์ Collection ํ์ ์ผ๋ก ๋ฆฌํดํฉ๋๋ค |
Set< Map, Entry<K,V>> | entrySet() | Map ์์ Entry๋ผ๋ ํ์ ์ Set์ ๋ฆฌํดํฉ๋๋ค |
int | size() | Map์ ๋ฐ์ดํฐ ๊ฐ์๋ฅผ ๋ฆฌํดํฉ๋๋ค |
void | clear() | Map์ ๋ฐ์ดํฐ๋ค์ ์ ๊ฑฐํฉ๋๋ค |
HashMap์ ๋ฉ์๋๋ Map์ ๊ธฐ๋ณธ ๋ฉ์๋์ ๊ฑฐ์ ๋์ผํฉ๋๋ค.
๋ฐ๋ง HashMap์ ์ฌ์ฉํ ๋๋ ์ฃผ์ํด์ผ ํ ์ ์ด ๋ช ๊ฐ์ง ์กด์ฌํฉ๋๋ค.
HashMap์๋ ์ ์ฅํ ์ ์๋ ํค๊ฐ ๊ธฐ๋ณธ ์๋ฃํ๊ณผ ์ฐ๋ฆฌ๊ฐ ์ง์ ๊ตฌํํ ์ฐธ์กฐ ์๋ฃํ
๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ฐ ์ฐ๋ฆฌ๊ฐ ์ง์ ๊ตฌํํ ํด๋์ค๋ฅผ ์ฌ์ฉํ ๋์๋ hashCode() ๋ฉ์๋์
equals() ๋ฉ์๋๋ฅผ ์ ๊ตฌํํด๋์ผ ํฉ๋๋ค.
๋ง์ฝ ์๋ก ๋ค๋ฅธ ํค๊ฐ ์ ์ฅ๋๋๋ฐ hashCode ๋ฉ์๋์ ๊ฒฐ๊ณผ๊ฐ ๋์ผํ๋ค๋ฉด get ๋ฉ์๋๊ฐ
์ ๋๋ก ๋์ํ์ง ์์ ์ํ์ฑ์ด ์กด์ฌํฉ๋๋ค.
TreeMap์ HashMap๊ณผ ๋ฌ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ํค๋ฅผ ์ ๋ ฌํ๋ฉด์ ์ ์ฅํฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ Set ์ปฌ๋ ์
์ ๋ค๋ฃจ๋ฉด์ ๋ณด์๋ HashSet๊ณผ TreeSet์ ์ฐจ์ด์ฒ๋ผ
TreeMap์ Key๊ฐ์ ์ ๋ ฌํ๋ฉด์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด์ ํค๋ฅผ ์ ๋ ฌํ ๋
์ถ๊ฐ์ ์ธ ๊ฐ์ฒด๋ฅผ ์์ฑํ ํ์๊ฐ ์์ต๋๋ค.
LinkedHashMap์ LinkedHashSet์ ์๋ ๊ณผ์ ๊ณผ ๋น์ทํ๊ฒ, Key๋ฅผ ์ ์ฅํ
์์์ ๋ฐ๋ผ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ฉ๋๋ค. ๋ฐ๋ผ์ put์ ์ํํ ์์์ ๋ฐ๋ผ์
๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์์ต๋๋ค.
์ด์ Collection๊ณผ ํจ๊ป ์ค๋์ Map์ ์ ๋ฆฌํ๋ฉด์ ์๋ฐ์ ์๋ฃ๊ตฌ์กฐ ๋๋ถ๋ถ์
์ ๋ฆฌํ์ต๋๋ค. ์๋ฐ์๋ ์ฃผ๋ก ๋ง์ด ์ฌ์ฉ๋๋ ์๋ฃ๊ตฌ์กฐ๋ค์ด ์๊ณ ๋ง์ด ์ฌ์ฉ๋์ง ์๋
์๋ฃ๊ตฌ์กฐ๋ค๋ ์์ง๋ง ์์ ์ด ์ฌ์ฉํ๊ณ ์ ํ๋ ์๋ฃ๊ตฌ์กฐ์ ์ฉ๋์ ํน์ง๋ค์ ์
ํ๋จํ์ฌ ์ฌ์ฉํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ํํ๋๊ฒ ์ค์ํ ๊ฒ ๊ฐ์ต๋๋ค.