๋ฐ์ํ
๐ก Hashtable
HashMap์ ๊ตฌํ๋ฒ์ ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
๊ฑฐ์ ๋์ผํ๋ ์ฐจ์ด์ ์ Hashtable์ ๋๊ธฐํโญ, HashMap์ ๋๊ธฐํโ๋ผ๋ ์ ์ด๋ค.
๐ก TreeMap
2024.11.25 - [โ ์๋ฐ JAVA/โ ๋ณ์์ ์๋ฃํ Variables & Data Type] - [JAVA]TreeSet
TreeSet๊ณผ ๋์ผํ๊ฒ ์ด์งํ์ํธ๋ฆฌ๋ฅผ ์ด์ฉํ๋ค.
(TreeSet์ TreeMap์ ๊ฐ์ง๊ณ ๋ง๋ค์ด์ก๋ค.)
๐ก LinkedHashMap
์์๋ฅผ ์ ์งํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ค.
HashMap
: Map์ธํฐํ์ด์ค์ ๋ํ์ ์ธ ๊ตฌํํด๋์ค.
- ๋ฐ์ดํฐ๋ฅผ key์ value ํ์์ผ๋ก ์ ์ฅํ๋ ์๋ฃํ.
- ์์โ, (key ์ค๋ณตโ, ๊ฐ ์ค๋ณตโญ)
- ํด์ฑHashing๊ธฐ๋ฒ์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
→ ๋ฐ์ดํฐ๊ฐ ๋ง์๋ ๊ฒ์์ด ๋น ๋ฅด๋ค.
๐ก ํด์ฑ Hashing
hash function์ ์ด์ฉํด์ ์ ์ฅ์์น index(hash code)๋ฅผ ์ฐพ๋ ๊ธฐ๋ฒ์ด๋ค.
์ด ๋ ์ ์ฅ๊ณต๊ฐ์ hash table์ด๋ผ๊ณ ํ๋ค. 2์ฐจ์ ๋ฐฐ์ด์ฒ๋ผ ์๊ฒผ๋ค.
hash table์ LinkedList๋ฅผ ๋ฌถ์ด ๋ฐฐ์ดํํ๋ก ๋ง๋ ๊ฒ์ด๋ค.
map.put(key, value)
: ๊ฐ ์ถ๊ฐ
- Map์ key(์ด์)๋ก ๋ฌธ์ ์ด๊ณ ๋ค์ด๊ฐ๋ฏ์ด, key๋ก ๊ฐ์ด ์๋ ๊ณณ(value)์ ๋ค์ด๊ฐ๋ค ๋์๋ค ํ ์ ์์ต๋๋ค.
โ key์ค๋ณต์ด ์๋ค๋ ๋ง์ ๋ป์ ๊ฐ์ ํค๋ก ์ ์ฅ์ ํ ์ ์๋ค๋ ๊ฒ ์๋๋ผ, ๊ฐ์ ํค๊ฐ ๋ค์ด์ค๋ฉด ๋ฎ์ด์์ด๋ค๋ ๋ง์ด๋ค.
map.get(key)
: ๊ฐvalue๋ฅผ ๊ฐ์ ธ์ฌ ๋
๊ทธ ์ธ ์์ฃผ ์ฐ์ด๋ ๋ฉ์๋
- int size() : ๋ง ๊ทธ๋๋ก Map์ฌ์ด์ฆ. key๊ฐ ๋๊ฐ ๋ค์์ผ๋ฉด 2.
- Set entrySet() : ์ ์ฒด์ ์ธ ํํ.
- clear() : ์ด๊ธฐํํด์ Map์ ๋น์ธ ๋.
- putAll(Map m) : ๊ธฐ๋ณธmap์ ์๋ก์ด map์ ์ฒด๋ฅผ ์ถ๊ฐํ๋ค.
- boolean containsKey(key) : ๋ด๊ฐ ์ฐพ๋ key๊ฐ ๋ค์ด์๋ ์ง ํ์ธ.
- boolean containsValue(value) : ๋ด๊ฐ ์ฐพ๋ value๊ฐ ๋ค์ด์๋ ์ง ํ์ธ.
- Set keySet() : key๋ค๋ง ๋์ด.
- Collection values() : ๊ฐ๋ค๋ง ๋์ด.
- boolean isEmpty() : ๋น์๋ ์ง ํ์ธ.
- Object replace(key, value) : key์ ๋ค์ ๊ฐ์ ๋ณ๊ฒฝํ ๋.
- Object remove(key) : ๊ฐ์ ์ง์ธ ๋.
entrySet()์ values()
Iterator ํ์ฉ
์์ 2
- ์ด์ ๊ณผ ํ๊ท ์ ๋ค ๋ํด์ ๋๋ ์ฃผ๋ฉด ๋๊ตฌ์.
- ์ต๊ณ ์ ์ : Collections.max()๋ฅผ ํ์ฉํ์ต๋๋ค.
- ์ต์ ์ ์ : Collections.min()์ ํ์ฉํ์ต๋๋ค.
์์ 3
๋น๋์ ๊ตฌํ๊ธฐ
์ค์ ๊ฐ๋ฐ์ ํ ๋ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๊ฒ Map์ ๋๋ค.
๋ณดํต key์ "์ด๋ ํ ๋ชฉ๋ก"์ผ๋ก value๋ฅผ ArrayList๋ก ์ค์ ํ๋ฉด ๊ทธ ๋ชฉ๋ก์ด List๋ก ๋จ๊ฒ ์ฃ .
Map<String, ArrayList>์ด๋ฐ ์์ผ๋ก์.
๋ฐ์ํ
'โ JAVA > โ Variables & Data Type' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA]enum (0) | 2024.11.28 |
---|---|
[JAVA]Singleton Pattern (0) | 2024.11.26 |
[JAVA]TreeSet (1) | 2024.11.25 |
[JAVA]HashSet (0) | 2024.11.23 |
[JAVA]์ฐ์ฐ์ (2) | 2024.11.22 |