์๊ฐ
๊ฑฐ์ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ ์ผ๋ถ ๋ฐ์ดํฐ ์งํฉ์ ์ ์ฅํด์ผ ํฉ๋๋ค. ๋ฌธ์์ด๊ณผ ์ซ์, ๊ฐ์ฒด ๋ฑ์ด ๋ ์ ์์ต๋๋ค. ์ด๋ ์ด๋ ๋ฐ์ด๋ ์คํ ๋ฆฌ์ง ์๋ฃจ์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ฐฐ์ด์๋ ํน์ ์ ํ ์ฌํญ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํฌ๊ธฐ๊ฐ ๊ณ ์ ๋์ด ์๊ณ ์์๋ฅผ ์ ๊ฑฐํ ์ ์์ผ๋ฉฐ ์ค๊ฐ์ ์์๋ฅผ ์ฝ์ ํ ์ ์์ต๋๋ค. ์ปฌ๋ ์ ์ ์ด๋ฌํ ์ ํ ์ฌํญ๊ณผ ๊ธฐํ ์ ํ ์ฌํญ์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ง๋ค์ด์ก์ต๋๋ค. ๋ชจ๋ ์ ํ์ ์ปฌ๋ ์ (์ด ๋ ์จ์ ๋ท๋ถ๋ถ์์ ๋ณผ ์ ์๋ฏ์ด ๋ง์ ์ปฌ๋ ์ ์ด ์์)์๋ ๋์ ์ผ๋ก ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ ์๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์ผ๋ถ ์ปฌ๋ ์ ์ ํ์ ์์๊ฐ ์ง์ ๋ ์์๋ฅผ ์ ์ฅํ๊ณ ์ ์์๊ฐ ์ถ๊ฐ๋๋ฉด ์๋์ผ๋ก ์์๋๋ก ๋ฐฐ์นํ ์ ์์ต๋๋ค.
์ด ๋ ์จ์์๋ Java Collections Framework ์์ ๊ธฐ๋ณธ ์ฝ๋ ์ ์ ํด๋์ค ๊ณ์ธต ๊ตฌ์กฐ์ ๋ํด ์์๋ด ๋๋ค . ๋ํ ํ์ค Java Collections Framework ์ ๊ธฐ๋ฅ์ ํ์ฅํ๋ ๋ค์ํ ๋์ฒด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ต๋๋ค . ๊ทธ์ค ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๊ฒ์ Guava (Google ์ปฌ๋ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)์ ๋๋ค.
๊ธฐ๋ณธ ์ธํฐํ์ด์ค
๋ค์ด์ด๊ทธ๋จ์ ๋๋จธ์ง ํด๋์ค์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด ๊ตฌํ๋๋ ๋ ๊ฐ์ง ๊ธฐ๋ณธ ์ธํฐํ์ด์ค๊ฐ ์์์ ๋ณด์ฌ์ค๋๋ค.
๋ค์ ์ธํฐํ์ด์ค๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
-
์ปฌ๋ ์ โ ์์(๊ฐ์ฒด) ์งํฉ์ ํฌํจํ๋ ์ผ๋ฐ ์ปฌ๋ ์ ์ ๋๋ค. ์ด ์ปฌ๋ ์ ์๋ ์ฝ์ ( add , addAll ), ์ ๊ฑฐ( remove , removeAll , clear ), ๊ฒ์( contains , containsAll ), ์ปฌ๋ ์ ์ด ๋น์ด ์๋์ง ํ์ธ( isEmpty ) ๋ฐ ํฌ๊ธฐ ๊ฐ์ ธ์ค๊ธฐ( size ) ์ ๊ฐ์ ์์ ์์ ์ ์ํ ๊ธฐ๋ณธ ๋ฉ์๋๊ฐ ์์ต๋๋ค.
-
Map โ ํค-๊ฐ ์์ผ๋ก ๊ตฌ์ฑ๋ ์ปฌ๋ ์ ์ ๋๋ค. ๋ํ Map ์ ๊ฐ ํค๋ ๊ณ ์ ํฉ๋๋ค. ๋์ผํ ๊ฐ์ ๊ฐ๋ ๋ ๊ฐ์ ํค๋ ์์ต๋๋ค. ์ด ์ปฌ๋ ์ ์ ์ฌ์ ์ด๋ผ๊ณ ๋ ํฉ๋๋ค. ์ง๋๋ ๋ณ๋์ ์ธํฐํ์ด์ค์ ๋๋ค. Collection ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ์ง ์์ง๋ง Java Collections Framework ์ ์ผ๋ถ์ ๋๋ค.
์ง๋ ์ ์์ ์์ ์ ์ ์ฉํ ๋ฐฉ๋ฒ :
-
์ฝ์ ( ๋ฃ๋ค , ๋ชจ๋ ๋ฃ๋ค )
-
get ( get , keySet , values โโ, entrySet )
-
์ ๊ฑฐํ๋ค( ์ ๊ฑฐํ๋ค , ์ง์ฐ๋ค )
-
๊ฒ์( containsKey , containsValue )
-
์ปฌ๋ ์ ์ด ๋น์ด ์๋์ง ํ์ธ( isEmpty )
-
ํฌ๊ธฐ๋ฅผ ์ป์ผ์ญ์์ค ( ํฌ๊ธฐ )
์ด์ ๊ทธ๋ค ๊ฐ๊ฐ์ ๋ํด ๋ ์ด์ผ๊ธฐํฉ์๋ค.
์ปฌ๋ ์ ์ธํฐํ์ด์ค
Collection ์ธํฐํ์ด์ค๋ ๋จ์ผ ๋ฉ์๋์ธ iterator() ๋ฅผ ๊ฐ๋ Iterable ์ธํฐํ์ด์ค๋ฅผ ํ์ฅ ํฉ๋๋ค . ์ฐ๋ฆฌ์๊ฒ ์ด๊ฒ์ Iterable์ ์์ํ๋ ๋ชจ๋ ์ปฌ๋ ์ ์ด ๋ฐ๋ณต์๋ฅผ ๋ฐํํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
๋ฐ๋ณต์๋ ํน์ ๊ตฌํ์ ๊ด๊ณ์์ด ์ปฌ๋ ์ ์ ์์์ ์ก์ธ์คํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ํน์ ๊ฐ์ฒด์ ๋๋ค.
๊ทธ๋ฆผ์ List , Queue ๋ฐ Set ์ 3๊ฐ ์ธํฐํ์ด์ค๊ฐ Collection ์ธํฐํ์ด์ค๋ฅผ ์์ํจ์ ๋ณด์ฌ์ค๋๋ค . ์ด์ ๊ฐ๊ฐ์ ๋ํด ๊ฐ๋จํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ชฉ๋ก์ ์ค๋ณต ๊ฐ์ ํ์ฉํ๋ ์ ๋ ฌ๋ ๋ชจ์์ ๋๋ค. ๋ชฉ๋ก ์ ํน์ ๊ธฐ๋ฅ์ํด๋น ์์์ ๋ฒํธ๊ฐ ๋งค๊ฒจ์ง๊ณ ๋ฒํธ(์ธ๋ฑ์ค)๋ก ์ก์ธ์คํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
Queue ๋ ํ์ ์ถ๊ฐ๋ ์์๋๋ก ์์๋ฅผ ์ ์ฅํฉ๋๋ค.
๋ชฉ๋ก๊ณผ ๋ฌ๋ฆฌ Set์ ๋ฐ๋ณต๋๋ ์์๋ฅผ ํ์ฉํ์ง ์๋ ์ ๋ ฌ๋์ง ์์ ์ปฌ๋ ์ ์ ๋ํ๋ ๋๋ค. Set ์ธํฐํ์ด์ค ๋ ์ํ์ ์งํฉ ์ ๊ฐ๋ ์ ํด๋นํฉ๋๋ค .
์ง๋ ์ธํฐํ์ด์ค์ ๊ตฌํ
๋งต ์ธํฐํ์ด์ค๊ฐ ๊ณ ์ ํ ํค์ ๊ฐ ์ฌ์ด์ ๋งคํ์ ๋ํ๋ด๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค .
interface Map<K, V>
์ฌ๊ธฐ์ K ๋ ํค์ ์ ํ์ด๊ณ V ๋ ์ ์ฅ๋ ๊ฐ์ ์ ํ์ ๋๋ค.
ํค๋ฅผ ์ฌ์ฉํ์ฌ Map ์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ ์ ์์ต๋๋ค . Map ์ ์์๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด ํค์ ๊ฐ์ ์ง์ ํด์ผ ํฉ๋๋ค.
Map ์ ๋ช ๊ฐ์ง ๊ตฌํ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค .
-
HashMap์ ํด์ ํ ์ด๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ Map ์ ๊ตฌํ์ ๋๋คnull ์ ํฌํจํ์ฌ ๋ชจ๋ ์ ํ์ ํค์ ๊ฐ์ ์ ์ฅํ ์ ์์ต๋๋ค. ์์์ ์์๋ ๋ณด์ฅ๋์ง ์์ต๋๋ค.
-
LinkedHashMap ์ ๋ฐ์ดํฐ๋ฅผ ์์์ ์ฐ๊ฒฐ๋ ๋ชฉ๋ก์ผ๋ก ์ ์ฅํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋๋ค. ์์๋ ์ถ๊ฐ๋ ์์๋๋ก ๋ชฉ๋ก์ ๋ํ๋ฉ๋๋ค.
-
TreeMap์ ( NavigableMap ์ธํฐํ์ด์ค๋ฅผ ํตํด) SortedMap ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํฉ๋๋ค. ์ด ๊ตฌ์กฐ์ ์์๋ ์ ๋ ฌ๋ ์์๋ก ์ ์ฅ๋ฉ๋๋ค(์ ์์๊ฐ ์ถ๊ฐ๋๋ฉด ์ปฌ๋ ์ ์ด ์๋์ผ๋ก ์ ๋ ฌ๋จ). TreeMap์ ๋น ๋ฅธ ๊ฒ์์ผ๋ก ๋ง์ ์์ ์ ๋ ฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ ํฉํฉ๋๋ค.
์ค๋๋ ์ปฌ๋ ์ :
Java์๋ ์ด์ ๋ฒ์ ์ ์ค๋๋ ์ปฌ๋ ์ ์ด ์์ต๋๋ค(์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ ์งํ๊ธฐ ์ํด). ์ด๋ฌํ ์ด์ ์ปฌ๋ ์ ์ ์ ์ฝ๋์์ ์ฌ์ฉํ๋ฉด ์ ๋ฉ๋๋ค.
-
Enumeration โ Iterator ์ธํฐํ์ด์ค์ ์ ์ฌํฉ๋๋ค.
-
Vector โ ์ ๋ ฌ๋ ์์ ๋ชฉ๋ก์ด๋ฉฐ ArrayList ํด๋์ค์ ์ ์ฌํฉ๋๋ค.
-
์คํ โ ์ฑ ๋๋ฏธ์ ์ํธ ์์ฉํ๋ ๋ฐฉ์๊ณผ ๊ฐ์ ์์๋ฅผ ์ ์ฅํ๊ณ ์กฐ์ํ๋ ์คํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๊ตฌํ์ ๋๋ค. ์คํ์ ์์๋ฅผ ์ถ๊ฐ( push )ํ๊ณ ์ ๊ฑฐ( pop )ํ๋ ๋ฉ์๋๊ฐ ์์ต๋๋ค.
-
์ฌ์ โ Map ์ธํฐํ์ด์ค ์ ์ ์ฌํ์ง๋ง ์ถ์ ํด๋์ค์ ๋๋ค.
-
Hashtable โ HashMap ๊ณผ ์ ์ฌํฉ๋๋ค .
Collections Framework ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ด ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค .