ch24 : Collections - Map
Last updated
Last updated
๋ชฉ์ฐจ
์ฃผ๋ก HashMap ํด๋์ค๋ฅผ ์ฌ์ฉํ๊ณ , ํค๊ฐ์ด ์ ๋ ฌ๋์ด์ผํ๋ฉด TreeMap์ ์ฌ์ฉํ๋ค.
HashTable
HashTable์ Map ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ์ง๋ง, HashMap, TreeMap์๋ ์ฐจ์ด๊ฐ ์๋ค.
HashMap์ ์ค๋ ๋-์ธ์ดํํ์ง ์์ ๋ฐ๋ฉด, HashTable์ ์ค๋ ๋ ์ธ์ดํํ๋ค.
๋ํ, HashMap์ ํค ํน์ ๊ฐ์ null ์ ์ฅ๊ฐ๋ฅํ๋, HashTable์ ๋ถ๊ฐ๋ฅํ๋ค.
HashTable์ ์ ์ธํ Map(์ ๊ตฌํํ) ํด๋์ค๋ค์ ์ค๋ ๋-์ธ์ดํํ์ง ์๋ค. Map(์ ๊ตฌํํ) ํด๋์ค๋ค์์ ์ค๋ ๋-์ธ์ดํํ๊ฒ ๊ตฌํํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ ์ธํด์ฃผ์ด์ผ ํ๋ค.
Map m = Collections.synchronized( new HashMap(..) );
HashTable ์์ธํ ์์๋ณด๊ธฐโ๐
ํค๋ ๊ธฐ๋ณธ์๋ฃํ/์ฐธ์กฐ์๋ฃํ ๋ชจ๋ ๋ ์ ์์
๋จ, ํค๊ฐ ๋๋ ์๋ฃํ์ equals(), hashcode()๋ฅผ ์ ๊ตฌํํด์ผํจ
hashcode()๊ฐ์ด ํค๊ฐ์ผ๋ก ์ ์ฅ๋๊ธฐ์, ๋ค๋ฅธ ๊ฐ์ฒด(ํค)์ธ๋ฐ hashcode()๊ฐ์ด ๊ฐ์ผ๋ฉด ๊ฐ์ ๋ฒํท์ ์ฌ์ฉํ๊ฒ ๋ ์ ์์ // ???
์ด๊ธฐํ
HashMap<String, String> map = new HashMap<String, String>();
๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ๊ฒฝ์ฐ, ํฌ๊ธฐ๋ฅผ ์ด๊ธฐํํด์ฃผ๋ ๊ฒ์ด ์ข์! (ํฌ๊ธฐ ์ด๊ธฐํ ์ํด๋ OK)
์ถ๊ฐ (Map์ ๋ฃ์ด์ค๋ค๋ ํํ์ ๋ง์ด ์ฌ์ฉํจ)
put(ํค, ๊ฐ)
์ด๋ฏธ ์๋ ํค-๊ฐ
์์ ์๋ก์ด ๊ฐ ๋ฑ๋กํ๋ฉด, ์ ๊ฐ์ผ๋ก ๋์ฒด๋๋ค.
์กฐํ
get(ํค)
์๋ ํค-๊ฐ
์์ ์ ๊ทผ/์กฐํํ๋ฉด null ๊ฐ์ด ๋์ด.
์ฐธ๊ณ ) ๋ฆฌ์คํธ/๋ฐฐ์ด์ ๊ฒฝ์ฐ ์๋ ์ธ๋ฑ์ค๋ก ์ ๊ทผํ๋ฉด, ๊ฐ๋ฐ์์๊ฒ ํด๋น ์์น๊ฐ ์๋ค๋ ๊ฑธ ์๋ ค์ฃผ๊ธฐ ์ํด์ ArrayIndexOutOfBoundsException
์ด๋ผ๋ ์์ธ๋ฅผ ๋ฐ์์ํจ๋ค.
keySet()
: Map ๊ฐ์ฒด์ ํค๋ค์ Set ํ์
์ผ๋ก ๋ฆฌํดํจ
values()
: Map ๊ฐ์ฒด์ ๊ฐ์ Collection ํ์
์ผ๋ก ๋ฆฌํดํจ
entrySet()
: Map ๊ฐ์ฒด์ ํค-๊ฐ์์ Entry ํ์
์ผ๋ก ๋ฆฌํดํจ (์ค๋ณต X)
getKey()
: Entry ํ์
์ ํค ์กฐํ
getValue()
: Entry ํ์
์ ๊ฐ ์กฐํ
์ญ์
remove()
๊ธฐ๋ณธ์ ์ผ๋ก ์ซ์ > ์ํ๋ฒณ ๋๋ฌธ์ > ์ํ๋ฒณ ์๋ฌธ์ > ํ๊ธ
์์ผ๋ก ์ ๋ ฌ๋๋ค.
SortedMap ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ์๊ธฐ์ ์ ๋ ฌ๋์ด ์ ์ฅ๋๋ค.
System ํด๋์ค์ Properties ๋ผ๋ ํด๋์ค๊ฐ ์๋ค.
Properties๋ Hashtable
์ ํ์ฅํ์๊ธฐ์, Map ์ธํฐํ์ด์ค์ ์๋ ๋ฉ์๋๋ค์ ๋ชจ๋ ์ฌ์ฉํ ์ ์๋ค.
Prperties ํด๋์ค์ ์ฌ์ฉํ๋ ์ด์ ?
Hashtable, HashMap ๋ณด๋ค ์ ๊ณตํ๋ ๋ฉ์๋๊ฐ ๋ง๊ธฐ ๋๋ฌธ
load()
, store()
๋ฑ
๋ฐ์ดํฐ ์ ์ฅ๊ณผ ์ฝ๊ธฐ๋ฅผ ํ์ค๋ก ํ ์ ์๋ค.