Bibi's DevLog ๐ค๐
[TIL] ๊ฐ์ธ ๊ณต๋ถ - ์๋ฐ Map, HashMap ๋ณธ๋ฌธ
[21.01.09]
์ค๋์ ์๋ ์ด์ ๋ง์ด ํค๋ฉจ๋ ์
ธ์คํฌ๋ฆฝํธ ๋ช
๋ น์ด๋ฅผ ๋ค์ ๊ณต๋ถํ๋ ค ํ๋ ๋ ์ด๋ค.
๋ง์ VM์ผ๊ณ ํฐ๋ฏธ๋์ ๋ง์ ธ๋ณด๋ vi๋ฅผ ๋ค์ฌ๋ค๋ด๋ ๋์ ์ ์ ๋ค์ด์๋ค..
๋ด๊ฐ ์ง ์ฝ๋๊ฐ ์๋์ด์๋ ์์ง๋ง, '์ต์ํ์ง ์์์'๊ฐ ์ ์ผ ํฐ ์ด์ ์ธ ๊ฒ ๊ฐ๋ค.
๊ทธ๋์ ๋ฆฌ๋
์ค์ ์
ธ์คํฌ๋ฆฝํธ๋ ์ฃผ๋ฌธํ '๋งํ๋ก ๋ฐฐ์ฐ๋ ๋ฆฌ๋
์ค ์์คํ
๊ด๋ฆฌ' ์ฑ
์ด ๋์ฐฉํ๋ฉด,
๊ทธ๊ฑธ ๋ณด๋ฉด์ ์ฒด๊ณ์ ์ผ๋ก ๊ณต๋ถ๋ฅผ ์์ํ๋ ค๊ณ ํ๋ค.
๊ตฌ๊ธ๋ง๊ณผ ์ธํฐ๋ท ์๋ฃ๋ก๋ง ๊ณต๋ถํ ๋์ ์ฑ
์ผ๋ก ๊ณต๋ถํ ๋๋ฅผ ๋น๊ตํด ๋ณด๋ฉด, ํ์๊ฐ ํจ์ฌ ๋์๊ฒ ๋ง๋ ๊ฒ ๊ฐ๋ค.
์๋ฌด๋ฆฌ ๋ค์ด์ค๋ ์ ๋ณด๊ฐ ๋ง์๋, ๋จธ๋ฆฟ์์ด ๋ค์ฃฝ๋ฐ์ฃฝ์ด๋ฉด ์ ๋ฆฌ๊ฐ ์ ๋์ด์ ๋์ค์ ๋จ๋ ๊ฒ ๋ณ๋ก ์๋ค.
๋ฌผ๋ก ์ฑ
์ ๋ณด๋ฉด์ ์ค์ต์ ๋ณํํด์ผ๊ฒ ์ง๋ง.
๊ทธ๋ฐ ์๋ฏธ์์ ์ค๋ ์ ๋
๊ณต๋ถ๋ ๋ง์คํฐ์ฆ ์ ๋ถํฐ ๋ณด๋ ์๋ฐ๊ธฐ๋ณธ์์ ์ง๋๋ฅผ ์ด์ด์ ๊ณต๋ถํ๊ธฐ๋ก ํ๋ค.
TIL
์๋ฐ Map๊ณผ HashMap
Map
- ์๋ฐ Map์ ํคKey์ ๊ฐValue๋ก ์ด๋ฃจ์ด์ง ์๋ฃ๊ตฌ์กฐ.
- ํค๋ ์ค๋ณต์ด ํ์ฉ๋์ง ์์, ๊ฐ์ ์ค๋ณต์ด ํ์ฉ๋จ.
- ํค ์์ด ๊ฐ๋ง, ๊ฐ ์์ด ํค๋ง ์ ์ฅํ๋ ๊ฒ : ๋ ๋ค ๋ถ๊ฐ๋ฅ.
- Map์ java.util.Map ์ผ๋ก ์ธํฐํ์ด์ค๋ก ์ ์ธ๋์ด ์์.
Map์ ์ฃผ์ ๋ฉ์๋
- put(K, V) : ํค์ ๊ฐ์ ๊ฐ๋ ๋ฐ์ดํฐ ์ ์ฅ
- get(K) : ํค์ ํด๋นํ๋ ๊ฐV ๋ฆฌํด
- remove(K) : ํค์ ํด๋นํ๋ ๋ฐ์ดํฐ ์ญ์
- keySet() : ํค ๋ชฉ๋ก์ Setํ์
์ผ๋ก ๋ฆฌํด
- values() : ๊ฐ ๋ชฉ๋ก์ Collectionํ์
์ผ๋ก ๋ฆฌํด
- entrySet() : Entry๋ผ๋ ํ์
์ Set์ ๋ฆฌํด -> ์ด ๋ถ๋ถ์ ์ค์ต์ ์ดํด๊ฐ ๋๋๋ฐ, ์ ์ฌ์ฉํ๋์ง๋ ๋ ์ฐพ์๋ด์ผ ์ดํด๋ ๊ฒ ๊ฐ๋ค.
- size() : Map์ ๋ฐ์ดํฐ ๊ฐ์๋ฅผ ๋ฆฌํด
- clear() : Map์ ๋ด์ฉ์ ์ญ์
Map์ ๊ตฌํํ ํด๋์ค๋ค
- ๋ํ์ ์ผ๋ก HashMap, TreeMap, LinkedHashMap, Hashtable์ด ์์
- ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ ๊ฒ์ HashMap ํด๋์ค.
- Map๊ณผ Hashtable์ ์ฐจ์ด์
- HashMap๊ณผ Hashtable์ ์ฐจ์ด์
- Map์ผ๋ก ๋๋๋ ํด๋์ค๋ค์ thread-safeํ๊ฒ ์ ์ธํ๋ ๋ฒ
HashMap
์์๊ด๊ณ
java.lang.Object - java.util.AbstractMap<K,V> - java.util.HashMap<K,V>
์ธํฐํ์ด์ค
Serializable, Cloneable, Map<E>
์์ฑ์(4๊ฐ)
HashMap() ๋๋ HashMap(int initialCapacity) ๋ฅผ ์ฃผ๋ก ์ฌ์ฉ.
* HashMap์ ํค๊ฐ ๋๋ ๊ฐ์ฒด๋ฅผ ์ง์ ๊ตฌํํ๋ ๊ฒฝ์ฐ ์ ์์
๋ฉ์๋
- HashMap ์ฃผ์๋ฉ์๋๋ ๋๋ถ๋ถ Map์ธํฐํ์ด์ค์ ์ ์๋์ด ์๋ค.
- put(), get(), keySet(), values(), entrySet()-getKey()์ getValue(), containsKey(), containsValue(), remove(), size()