๋ฐ์ํ
โจHashMap ์ด๋ ๋ฌด์์ธ๊ฐ์?
- HashMap์ Map ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๋ํ์ ์ธ Map ์ปฌ๋ ์ ์ ๋๋ค.
- Map ์ธํฐํ์ด์ค๋ฅผ ์์ํ๊ณ ์๊ธฐ์ Map์ ์ฑ์ง์ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ์์ต๋๋ค.
- Map์ ํค๐์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋ Entry๊ฐ์ฒด๋ฅผ ์ ์ฅํ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
- ์ฌ๊ธฐ์ ํค์ ๊ฐ์ ๋ชจ๋ ๊ฐ์ฒด์ ๋๋ค. ๊ฐ์ ์ค๋ณต ์ ์ฅ๋ ์ ์์ง๋ง ํค๋ ์ค๋ณต ์ ์ฅ๋ ์ ์์ต๋๋ค.
- ๋ง์ฝ ๊ธฐ์กด์ ์ ์ฅ๋ ํค์ ๋์ผํ ํค๋ก ๊ฐ์ ์ ์ฅํ๋ฉด ๊ธฐ์กด์ ๊ฐ์ ์์ด์ง๊ณ ์๋ก์ด ๊ฐ์ผ๋ก ๋์น๋ฉ๋๋ค.
- HashMap์ ์ด๋ฆ ๊ทธ๋๋ก ํด์ฑ(Hashing)์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ ๋ฐ ์์ด์ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ณด์ ๋๋ค.
์ถ์ฒ : ๋งํฌ
์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด HashMap์ ๋ด๋ถ์ 'ํค'์ '๊ฐ'์ ์ ์ฅํ๋ ์๋ฃ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
HashMap์ ํด์ ํจ์๋ฅผ ํตํด 'ํค'์ '๊ฐ'์ด ์ ์ฅ๋๋ ์์น๋ฅผ ๊ฒฐ์ ํ๋ฏ๋ก,
์ฌ์ฉ์๋ ๊ทธ ์์น๋ฅผ ์ ์ ์๊ณ , ์ฝ์ ๋๋ ์์์ ๋ค์ด ์๋ ์์น ๋ํ ๊ด๊ณ๊ฐ ์์ต๋๋ค.
โจHashMap ์ฌ์ฉ๋ฒ
HashMap ์ ์ธ
/* HashMap์์ฑ */
HashMap<String,String> map1 = new HashMap<String,String>();
/* new์์ ํ์
ํ๋ผ๋ฏธํฐ ์๋ต๊ฐ๋ฅ */
HashMap<String,String> map2 = new HashMap<>();
/* map1์ ๋ชจ๋ ๊ฐ์ ๊ฐ์ง HashMap์์ฑ */
HashMap<String,String> map3 = new HashMap<>(map1);
/* ์ด๊ธฐ ์ฉ๋(capacity)์ง์ */
HashMap<String,String> map4 = new HashMap<>(10);
/* ์ด๊ธฐ capacity,load factor์ง์ */
HashMap<String,String> map5 = new HashMap<>(10, 0.7f);
/* ์ด๊ธฐ๊ฐ ์ง์ */
HashMap<String,String> map6 = new HashMap<String,String>(){{
put("a","b");
}};
HashMap ๊ฐ ์ถ๊ฐ
/* new์์ ํ์
ํ๋ผ๋ฏธํฐ ์๋ต๊ฐ๋ฅ */
HashMap<Integer,String> map = new HashMap<>();
/* ๊ฐ ์ถ๊ฐ */
map.put(1,"์ฌ๊ณผ");
map.put(2,"๋ฐ๋๋");
map.put(3,"ํฌ๋");
HashMap ๊ฐ ์ญ์
/* ์ด๊ธฐ๊ฐ ์ง์ */
HashMap<Integer,String> map = new HashMap<Integer,String>(){{
put(1,"์ฌ๊ณผ");
put(2,"๋ฐ๋๋");
put(3,"ํฌ๋");
}};
/* key๊ฐ 1 ์ ๊ฑฐ */
map.remove(1);
/* ๋ชจ๋ ๊ฐ ์ ๊ฑฐ */
map.clear();
HashMap ๊ฐ ์ถ๋ ฅ
/* ์ด๊ธฐ๊ฐ ์ง์ */
HashMap<Integer,String> map = new HashMap<Integer,String>(){{
put(1,"์ฌ๊ณผ");
put(2,"๋ฐ๋๋");
put(3,"ํฌ๋");
}};
/* ์ ์ฒด ์ถ๋ ฅ : {1=์ฌ๊ณผ, 2=๋ฐ๋๋, 3=ํฌ๋} */
System.out.println(map);
/* key๊ฐ 1์ value์ป๊ธฐ : ์ฌ๊ณผ */
System.out.println(map.get(1));
/* entrySet() ํ์ฉ */
for (Entry<Integer, String> entry : map.entrySet()) {
System.out.println("[Key]:" + entry.getKey() + " [Value]:" + entry.getValue());
}
/* [Key]:1 [Value]:์ฌ๊ณผ
[Key]:2 [Value]:๋ฐ๋๋
[Key]:3 [Value]:ํฌ๋ */
/* KeySet() ํ์ฉ */
/* ์ ์ฅ๋ key๊ฐ ํ์ธ */
for(Integer i : map.keySet()){
System.out.println("[Key]:" + i + " [Value]:" + map.get(i));
}
/* [Key]:1 [Value]:์ฌ๊ณผ
[Key]:2 [Value]:๋ฐ๋๋
[Key]:3 [Value]:ํฌ๋ */
Iterator ์ฌ์ฉ (Map์์ ์ ์ฒด ์์๋ฅผ ์ถ๋ ฅํ๊ธฐ)
/* ์ด๊ธฐ๊ฐ ์ง์ */
HashMap<Integer,String> map = new HashMap<Integer,String>(){{
put(1,"์ฌ๊ณผ");
put(2,"๋ฐ๋๋");
put(3,"ํฌ๋");
}};
/* entrySet().iterator() */
Iterator<Entry<Integer, String>> entries = map.entrySet().iterator();
while(entries.hasNext()){
Map.Entry<Integer, String> entry = entries.next();
System.out.println("[Key]:" + entry.getKey() + " [Value]:" + entry.getValue());
}
/* [Key]:1 [Value]:์ฌ๊ณผ
[Key]:2 [Value]:๋ฐ๋๋
[Key]:3 [Value]:ํฌ๋ */
/* keySet().iterator() */
Iterator<Integer> keys = map.keySet().iterator();
while(keys.hasNext()){
int key = keys.next();
System.out.println("[Key]:" + key + " [Value]:" + map.get(key));
}
/* [Key]:1 [Value]:์ฌ๊ณผ
[Key]:2 [Value]:๋ฐ๋๋
[Key]:3 [Value]:ํฌ๋ */
์ฐธ๊ณ : ๋งํฌ
๐ธ HashMap - Key ๊ฐ ์ถ๋ ฅ
import java.util.Map.Entry;
import java.util.*;
public class MapTest{
public static void main(String[] args){
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("Key1",1);
map.put("Key2",2);
map.put("Key3",3);
map.put("Key4",4);
map.put("Key5",5);
/* ๋ฐฉ๋ฒ 1 - KeySet() : key */
for(String key : map.keySet()){
System.out.println(key);
}
/* ๋ฐฉ๋ฒ 2 - entrySet() : key/value */
for(Entry<String, Integer>elem : map.entrySet()){
System.out.println(elem.getKey() + " " + elem.getValue());
}
/* ๋ฐฉ๋ฒ 3 - Iterator */
// Iterator 1. keySet()
Iterator<String> keys = map.keySet().iterator();
while(keys.hasNext()){
String key = keys.next();
System.out.println(key);
}
// Iterator 2. keySet()
Set set = map.keySet();
Iterator iterator = set.iterator();
while(iterator.hasNext()){
String key = (String)iterator.next();
System.out.println(key);
}
// Iterator 3. entrySet() : key/value
Set set2 = map.entrySet();
Iterator iterator2 = set2.iterator();
while(iterator2.hasNext()){
Entry<String,Integer>entry = (Entry)iterator2.next();
String key = (String)entry.getKey();
int value = (Integer)entry.getValue();
System.out.println(key);
System.out.println(value);
}
}
}
HashMap - getOfDefault()
Integer getOrDefault(Object key, Integer defaultValue)
ํด๋น key๊ฐ์ด ์กด์ฌํ๋ฉด key์ value๋ฅผ ๋ฐํํ๊ณ ์กด์ฌํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์ ๋ฐํํ๋ค.
์ด ๋ฉ์๋๋ฅผ ์ด์ฉํด์ ์ค๋ณต๋๋ ๊ฐ์ด ๋ช ๊ฐ ์๋์ง ํ์ธํ ์ ์๋ค.
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
String[] arr= {"aaa","aaa","bbb","ccc","ddd","ccc","eee"};
Map<String, Integer> map = new HashMap<String, Integer>();
for(String key : arr) {
map.put(key, map.getOrDefault(key, 0)+1);
}
System.out.println(map);
}
}
์ถ๋ ฅ๊ฒฐ๊ณผ------
{aaa=2, ccc=2, bbb=1, eee=1, ddd=1}
300x250
'๊ฐ๋ฐ์ธ์ด > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] SimpleDateFormat ํจํด/์ฌ์ฉ๋ฒ (0) | 2022.04.12 |
---|---|
[Java] ๋ ๋ ์ง ์ฌ์ด์ ์ฐจ์ด ๊ณ์ฐ (0) | 2022.04.10 |
[JAVA] TreeMap ์ฌ์ฉ๋ฒ (0) | 2022.04.08 |
[Java] Map - getOrDefault ์ด๋? (0) | 2022.04.06 |
[Java] ์ฒ ๋จ์ ์ฝค๋ง ์ฐ๊ธฐ (Format ํด๋์ค , ์ฝค๋ง ์ ๊ท์) (0) | 2022.03.15 |