Collection - Map
Map Collection์ ํค(key)์ ๊ฐ(value)๋ก ๊ตฌ์ฑ๋ Entry ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ฌ๊ธฐ์ key์ value๋ ๋ชจ๋ ๊ฐ์ฒด์ด๋ค. key๋ ์ค๋ณต ์ ์ฅ๋ ์ ์์ง๋ง value๋ ์ค๋ณต ์ ์ฅ๋ ์ ์๋ค. ๋ง์ฝ ๊ธฐ์กด์ ์ ์ฅ๋ key์ ๋์ผํ key๋ก value์ ์ ์ฅํ๋ฉด ๊ธฐ์กด์ value์ ์์ด์ง๊ณ ์๋ก์ด ๊ฐ์ผ๋ก ๋์น๋๋ค.
๊ธฐ๋ฅ
๋ฉ์๋
์ค๋ช
๊ฐ์ฒด ์ถ๊ฐ
V put(K key,V value)
์ฃผ์ด์ง ํค์ ๊ฐ์ ์ถ๊ฐ, ์ ์ฅ๋๋ฉด ๊ฐ์ return
๊ฐ์ฒด ๊ฒ์
boolean containsKey(Object key)
์ฃผ์ด์ง ํค๊ฐ ์๋์ง ์ฌ๋ถ
boolean containsValue(Object value)
์ฃผ์ด์ง ๊ฐ์ด ์๋์ง ์ฌ๋ถ
Set> entrySet()
ํค์ ๊ฐ์ ์์ผ๋ก ๊ตฌ์ฑ๋ ๋ชจ๋ Map.Entry ๊ฐ์ฒด๋ฅผ Set์ ๋ด์์ return
V get(Object key)
์ฃผ์ด์ง ํค๊ฐ ์๋ ๊ฐ์ ๋ฆฌํด
boolean isEmpty()
Collection์ด ๋น์ด์๋์ง ์ฌ๋ถ
Set<K> keySet()
๋ชจ๋ ํค๋ฅผ Set ๊ฐ์ฒด์ ๋ด์์ return
int size()
์ ์ฅ๋ ํค์ ์ด ์๋ฅผ return
Collection<V> values()
์ ์ฅ๋ ๋ชจ๋ ๊ฐ์ Collection์ ๋ด์์ return
๊ฐ์ฒด ์ญ์
void clear()
๋ชจ๋ Map.Entry(ํค์ ๊ฐ) ์ญ์
V remove(Object key)
์ฃผ์ด์ง ํค์ ์ผ์นํ๋ Map.Entry ์ญ์ ํ๊ณ ๊ฐ์ return
key๋ฅผ ์๊ณ ์์ผ๋ฉด get()์ผ๋ก ๊ฐ๋จํ๊ฒ ๊ฐ์ฒด๋ฅผ ์ฐพ์์ค๋ฉด๋์ง๋ง, ์ ์ฅ๋ ์ ์ฒด ๊ฐ์ฒด๋ฅผ ๋์์ผ๋ก ํ๋์ฉ ์ป๊ณ ์ถ์ ๊ฒฝ์ฐ์๋ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
HashMap
HashMap์ ์ฐ๊ด ๋ฐฐ์ด(Key-Value)์ ์ ์ฅํ๊ธฐ ์ํ ์๋ฃ ๊ตฌ์กฐ์ด๋ค. ํค๋ฅผ ํตํด ์ฝ๊ฒ ๊ฐ์ ์ ์ฅํ๊ฑฐ๋ ์ป์ ์ ์๋ค.
HashMap์ ํค๋ก ์ฌ์ฉ๋ ๊ฐ์ฒด๋ hashCode()์ equals() ๋ฉ์๋๋ฅผ ์ฌ์ ์ํด์ ๋๋ฑ ๊ฐ์ฒด๊ฐ ๋ ์กฐ๊ฑด์ ์ ํด์ผํ๋ค. ๋์ผํ ํค๊ฐ ๋ ์กฐ๊ฑด์ hashCode()์ return๊ฐ์ด ๊ฐ์์ผํ๊ณ , equals() ๋ฉ์๋๊ฐ true๋ฅผ returnํด์ผํ๋ค.
ํค์ ๊ฐ์ ํ์ ์ ๊ธฐ๋ณธํ์ (byte, short, int, float, double, boolean, char)์ ์ฌ์ฉํ ์ ์๊ณ , ํด๋์ค ๋ฐ ์ธํฐํ์ด์ค ํ์ ๋ง ๊ฐ๋ฅํ๋ค.
HashMap.keySet()
์ ํตํ์ฌ Set์ ๊บผ๋ด๊ฒ ๋๋๋ฐ, ์ด ๋ฐํ๋๋ Set์ ๋์์์ HashMap์ ๋ฐ์ดํฐ ์
๋ ฅ์ ์์๊ฐ ๋ณด์ฅ๋์ง ์๋๋ค.
sychronizedMap
Collection ํ๋ ์์ํฌ์ ๋๋ถ๋ถ์ ํด๋์ค(HashMap)๋ Single Thread ํ๊ฒฝ์์ ์ฌ์ฉํ ์ ์๋๋ก ์ค๊ณ๋์๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ฉํฐ ์ค๋ ๋ ํ๊ฒฝ์์ ์์ ํ์ง์๋ค. Single Threadํ๊ฒฝ์์ Multi Threadํ๊ฒฝ์ผ๋ก ์ ๋ฌํ ๊ฒฝ์ฐ์ ๋๋นํด ๋น๋๊ธฐํ๋ ๋ฉ์๋๋ฅผ ๋๊ธฐํ๋ ๋ฉ์๋๋ก Wrappingํ๋ synchronizedMap()๋ฉ์๋๋ฅผ ์ ๊ณตํ๊ณ ์๋ค.
๋ฆฌํดํ์
๋ฉ์๋
์ค๋ช
Map
synchronizedMap(Map m)
Map์ ๋๊ธฐํ๋ Map๋ก ๋ฆฌํด
ConcurrentHashMap
๋๊ธฐํ๋ ์ปฌ๋ ์ ์ ๋ฉํฐ ์ค๋ ๋ ํ๊ฒฝ์์ ํ๋์ ์ค๋ ๋๊ฐ ์์๋ฅผ ์์ ํ๊ฒ ์ฒ๋ฆฌํ๋๋ก ๋์์ฃผ์ง๋ง, ์ ์ฒด ์์๋ฅผ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ์ง๋ ๋ชปํ๋ค. ํ๋์ ์ค๋ ๋๊ฐ ์์๋ฅผ ์ฒ๋ฆฌํ ๋ ์ ์ฒด ์ ๊ธ์ด ๋ฐ์ํด ๋ค๋ฅธ ์ค๋ ๋๋ ๋๊ธฐ์ํ๊ฐ๋๋ค. ์๋ฐ๋ ๋ฉํฐ ์ค๋ ๋๊ฐ ์ปฌ๋ ์ ์ ์์๋ฅผ ๋ณ๋ ฌ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋๋ก ์ปฌ๋ ์ ์ ์ ๊ณตํ๊ณ ์๋ค.
ConcurrentHashMap์ ๋ถ๋ถ(segment) ์ ๊ธ์ ์ฌ์ฉํด, ์ฒ๋ฆฌํ๋ ์์๊ฐ ํฌํจ๋ segment๋ง ์ ๊ธํ๊ณ , ๋ค๋ฅธ ์ค๋ ๋๋ ๋ณ๊ฒฝํ ์ ์๋ค.
LinkedHashMap
LinkedHashMap์ HashMap์ ํ์ฅํ๋ ํด๋์ค๋ก ์๋ฃ๊ฐ ์ ๋ ฅ๋ ์์๋ฅผ ๊ธฐ์ตํ๋ค๋ ํน์ง์ด ์๋ค.
key-value ๊ฐ์ด ํ์ํ ๊ฒฝ์ฐ
์ ์ฒดํฌ๊ธฐ๋ ์์ง ๋ชปํ๋ ๊ฒฝ์ฐ
์์๋ฅผ ์์์ผ ํ๋ ๊ฒฝ์ฐ
์ด๋ฌํ ๊ฒฝ์ฐ์ ๊ฐํธํ๊ฒ ์ธ ์ ์๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ฆ, HashMap์ ํตํด ์๋ฃ๋ฅผ ๋ณด๊ดํ ํ์๊ฐ ์์ง๋ง, ์์๋๋ก ๊ฐ์ ธ์์ผํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ฉด๋๋ค. HashMap์ ํ์ฅํ์ผ๋ฏ๋ก, HashMap์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, Doubly-Linked List๋ฅผ ๋ด๋ถ์ ์ ์งํจ์ผ๋ก์จ ์ ๋ ฅ๋ ์๋ฃ ์์๋ฅผ ๊ธฐ์ตํ ์ ์๋ค.
Hashtable
HashMap๊ณผ์ ์ฐจ์ด์ ์ Hashtable์ ๋๊ธฐํ๋(synchronized) ๋ฉ์๋๋ก ๊ตฌ์ฑ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ฉํฐ ์ค๋ ๋๊ฐ ๋์์ ์ด ๋ฉ์๋๋ค์ ์คํํ ์ ์๊ณ , ํ๋์ ์ค๋ ๋๊ฐ ์คํ์ ์๋ฃํด์ผ๋ง ๋ค๋ฅธ ์ค๋ ๋๋ฅผ ์คํํ ์ ์๋ค. ๊ทธ๋์ ๋ฉํฐ ์ค๋ ๋ ํ๊ฒฝ์์ ์์ ํ๊ฒ ๊ฐ์ฒด๋ฅผ ์ถ๊ฐ, ์ญ์ ํ ์ ์๋ค.
Properties
Properties๋ Hashtable์ ํ์ ํด๋์ค์ด๊ธฐ ๋๋ฌธ์ Hashtable์ ๋ชจ๋ ํน์ง์ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ์๋ค. ์ฐจ์ด์ ์ Hashtable์ ํค์ ๊ฐ์ ๋ค์ํ ํ์ ์ผ๋ก ์ง์ ์ด ๊ฐ๋ฅํ๋ฐ ๋นํด Properties๋ ํค์ ๊ฐ์ String ํ์ ์ผ๋ก ์ ํํ Collection์ด๋ค.
Properties๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ต์
์ ๋ณด, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ ๋ณด, ๊ตญ์ ํ ์ ๋ณด๊ฐ ์ ์ฅ๋ (~.properties
)ํ์ผ์ ์ฝ์ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
์ฐธ๊ณ
Last updated