๐กHashMap ์ด๋?
HashMap์ Map ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๋ํ์ ์ธ Map ์ปฌ๋ ์ ์ด๋ค. Map ์ธํฐํ์ด์ค๋ฅผ ์์ํ๊ณ ์๊ธฐ์ Map์ ์ฑ์ง์ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ๋ค. Map์ ํค์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋ Entry๊ฐ์ฒด๋ฅผ ์ ์ฅํ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ฌ๊ธฐ์ ํค์ ๊ฐ์ ๋ชจ๋ ๊ฐ์ฒด์ด๋ค.
๊ฐ์ ์ค๋ณต ์ ์ฅ๋ ์ ์์ง๋ง, ํค๋ ์ค๋ณต์ ์ฅ ๋ ์ ์๋ค. ๋ง์ฝ ๊ธฐ์กด์ ์ ์ฅ๋ ํค์ ๋์ผํ ํค๋ก ์ ์ฅํ๋ฉด ๊ธฐ์กด์ ๊ฐ์ ์์ด์ง๊ณ ์๋ก์ด ๊ฐ์ผ๋ก ๋์น๋๋ค. HashMap์ ์ด๋ฆ ๊ทธ๋๋ก ํด์ฑ(Hashing)์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ ๋ฐ ์์ด์ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๊ฐ์ง๋ค.
์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด HashMap์ ๋ด๋ถ์ 'ํค'์ '๊ฐ'์ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ค. HashMap์ ํด์ ํจ์๋ฅผ ํตํด 'ํค'์'๊ฐ์ด ์ ์ฅ๋๋ ์์น๋ฅผ ๊ฒฐ์ ํ๋ฏ๋ก, ์ฌ์ฉ์๋ ๊ทธ ์์น๋ฅผ ์ ์ ์๊ณ , ์ฝ์ ๋๋ ์์์ ๋ค์ด ์๋ ์์น ๋ํ ๊ด๊ณ๊ฐ ์๋ค.
๐กHashMap ์ฌ์ฉ๋ฒ
HashMap ์ ์ธ
HashMap<String,String> map1 = new HashMap<String,String>();//HashMap์์ฑ
HashMap<String,String> map2 = new HashMap<>();//new์์ ํ์
ํ๋ผ๋ฏธํฐ ์๋ต๊ฐ๋ฅ
HashMap<String,String> map3 = new HashMap<>(map1);//map1์ ๋ชจ๋ ๊ฐ์ ๊ฐ์ง HashMap์์ฑ
HashMap<String,String> map4 = new HashMap<>(10);//์ด๊ธฐ ์ฉ๋(capacity)์ง์
HashMap<String,String> map5 = new HashMap<>(10, 0.7f);//์ด๊ธฐ capacity,load factor์ง์
HashMap<String,String> map6 = new HashMap<String,String>(){{//์ด๊ธฐ๊ฐ ์ง์
put("a","b");
}};
HashMap์ ์์ฑํ๋ ค๋ฉด Keyํ์ ๊ณผ Value ํ์ ์ ํ๋ผ๋ฏธํฐ๋ก ์ฃผ๊ณ ๊ธฐ๋ณธ์์ฑ์๋ฅผ ํธ์ถํ๋ฉด ๋๋ค. HashMap์ ์ ์ฅ๊ณต๊ฐ๋ณด๋ค ๊ฐ์ด ์ถ๊ฐ๋ก ๋ค์ด์ค๋ฉด List์ฒ๋ผ ์ ์ฅ๊ณต๊ฐ์ ์ถ๊ฐ๋ก ๋๋ฆฌ๋๋ฐ, List์ฒ๋ผ ์ ์ฅ๊ณต๊ฐ์ ํ์นธ์ฉ ๋๋ฆฌ์ง ์๊ณ ์ฝ ๋๋ฐฐ๋ก ๋๋ฆฐ๋ค. ( ์ฌ๊ธฐ์ ๊ณผ๋ถํ ๋ง์ด ๋ฐ์ )
๊ทธ๋ ๊ธฐ์ ์ด๊ธฐ์ ์ ์ฅํ ๋ฐ์ดํฐ ๊ฐ์๋ฅผ ์๊ณ ์๋ค๋ฉด Map์ ์ด๊ธฐ ์ฉ๋์ ์ ์ฅํด์ฃผ๋ ๊ฒ์ด ์ข๋ค.
๐กHashMap ๊ฐ ์ถ๊ฐ
HashMap<Integer, String> map=new HashMap<>(); // new์์ ํ์
ํ๋ผ๋ฏธํฐ ์๋ต๊ฐ๋ฅ
map.put(1,"์ฌ๊ณผ"); // ๊ฐ ์ถ๊ฐ
map.put(2,"๋ฐ๋๋");
map.put(3,"ํฌ๋");
HashMap์ ๊ฐ์ ์ถ๊ฐํ๋ ค๋ฉด put(key, value)๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. ์ ์ธ์ HashMap์ ์ค์ ํด์ค ํ์ ๊ณผ ๊ฐ์ ํ์ ์ Key์ Value๊ฐ์ ๋ฃ์ด์ผ ํ๋ฉฐ ๋ง์ฝ ์ ๋ ฅ๋๋ ํค ๊ฐ์ด HashMap ๋ด๋ถ์ ์กด์ฌํ๋ค๋ฉด ๊ธฐ์กด์ ๊ฐ์ ์๋ก ์ ๋ ฅ๋๋ ๊ฐ์ผ๋ก ๋์น๋๋ค.
๐กHashMap ๊ฐ ์ญ์
HashMap<Integer, String> map=new HashMap<Integer,String>(){{ // ์ด๊ธฐ๊ฐ ์ง์
put(1,"์ฌ๊ณผ");
put(2,"๋ฐ๋๋");
put(3,"ํฌ๋");
}}
map.remove(1) // key๊ฐ 1 ์ ๊ฑฐ
map.clear() // ๋ชจ๋ ๊ฐ ์ ๊ฑฐ
HashMap์ ๊ฐ์ ์ ๊ฑฐํ๋ ค๋ฉด remove(key) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์ค์ง ํค ๊ฐ์ผ๋ก๋ง Map์ ์์๋ฅผ ์ญ์ ํ ์ ์๋ค. ๋ชจ๋ ๊ฐ์ ์ ๊ฑฐํ๋ ค๋ฉด clear() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
๐กHashMap ๊ฐ ์ถ๋ ฅ
ashMap<Integer, String> map=new HashMap<Integer,String>(){{ // ์ด๊ธฐ๊ฐ ์ง์
put(1,"์ฌ๊ณผ");
put(2,"๋ฐ๋๋");
put(3,"ํฌ๋");
}};
System.out.println(map); // ์ ์ฒด ์ถ๋ ฅ : {1=์ฌ๊ณผ, 2=๋ฐ๋๋, 3=ํฌ๋}
System.out.println(map.get(1)); // key๊ฐ 1์ value ์ป๊ธฐ : ์ฌ๊ณผ
// entrySet() ํ์ฉ
for(Entry<Integer, String> entry : map.entrySet()){
System.out.println("[Key:" + entry.getKey() +"[Value]:"+entry.getValue());
}
//[Key]:1 [Value]:์ฌ๊ณผ
//[Key]:1 [Value]:๋ฐ๋๋
//[Key]:1 [Value]:ํฌ๋
'๐ ์ฝ๋ฉํ ์คํธ > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA][์๊ณ ๋ฆฌ์ฆ] DFS ( ์ด์ง ํธ๋ฆฌ ์ํ ) (0) | 2022.11.04 |
---|---|
[JAVA] ์ฌ๊ทํจ์ ( ๋ฉ๋ชจ์ด์ ์ด์ ) (0) | 2022.11.03 |
[JAVA] ์ด์งํ์ ( Binary Search ) (0) | 2022.10.26 |
[JAVA] List : LinkedList (0) | 2022.10.26 |
[JAVA] List : ArrayList (0) | 2022.10.26 |