ALGORITHM_HashMap
๐ ALGORITHM
๐ HashMap
HashMap
HashMap์ Map ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๋ํ์ ์ธ Map ์ปฌ๋ ์
์ด๋ค.
Map์ ์ฑ์ง์ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ์๋ค.
Key ๊ฐ๊ณผ Value ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋ Entity ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์๋ฃ๊ตฌ์กฐ
Key๊ฐ์ ์ค๋ณต์ด ํ์ฉ๋์ง ์์ง๋ง Value๊ฐ์ ์ค๋ณต์ด ํ์ฉ๋๋ค.
๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋๋ฐ ์์ด ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ณด์ธ๋ค.
๋ง์ ์์ ๋ฐ์ดํฐ ์ค์ ํน์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ ๋ ์ ๋ฆฌํจ
HashMap ์ฃผ์ ๋ฉ์๋
HashMap ์ ์ธ
// key : String, value : Integer
HashMap<String, Integer> map = HashMap<String, Integer>();
HashMap ๊ฐ ์ถ๊ฐ
- map.put(key๊ฐ, value๊ฐ);
// put(key๊ฐ, value๊ฐ)
map.put("a",123);
map.put("b",234);
HashMap ๊ฐ ์์
- map.put(key๊ฐ, value๊ฐ);
- ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ๋ โKey๊ฐโ์ด ๊ฐ์ผ๋ฉด ๋์ค์ ์ ๋ ฅํ ๊ฐ์ด ์ ์ฅ๋๋ค.
// ๊ธฐ์กด์ ๊ฐ์ ๋ฎ์ด์ด๋ค.
map.put("a",555);
HashMap ๊ฐ ์ญ์
- map.remove(key๊ฐ);
- โKey๊ฐโ์ด ๊ฐ์ ์๋ฃ๋ฅผ ์ฐพ์ ์ญ์ ํ๋ค.
- ๋ฐํ๊ฐ : ์ญ์ ํ ์๋ฃ์ value ๊ฐ
int value = map.remove("a");
// value = 555
HashMap ๊ฐ ์ฝ๊ธฐ
- map.get(key๊ฐ);
- ๋ฐํ๊ฐ : key๊ฐ๊ณผ ์ง์ด ๋๋ value ๊ฐ
int value = map.get("b");
// value = 234
๊ฐ์ด ์กด์ฌํ๋์ง ์ฌ๋ถ ๋ฉ์๋
- map์ Key๊ฐ์ด ์กด์ฌํ๋ฉด True, ์๋๋ฉด False
- map.containsKey(key๊ฐ);
- map์ Value๊ฐ์ด ์กด์ฌํ๋ฉด True, ์๋๋ฉด False
- map.containsValue(value๊ฐ);
- ๋ฐํ๊ฐ : boolean
boolean check = map.containsKey("b");
// check = true
boolean check_value = map.containsValue(444);
// check_value = false
๋ชจ๋ ๋ฐ์ดํฐ ์ฝ์ด์ค๊ธฐ
- ๋ชจ๋ Key๊ฐ ์ฝ์ด์ค๊ธฐ
- keySet() ๋ฉ์๋ ์ฌ์ฉ
for(String key : map.keySet()){
// Key๊ฐ์ ์ด์ฉํด์ value ๊ฐ ๊ตฌํ๊ธฐ
int value = map.get(key);
}
- ๋ชจ๋ Value๊ฐ ์ฝ์ด์ค๊ธฐ
- values() ๋ฉ์๋ ์ฌ์ฉ
- Key๊ฐ์ ์ ์ ์๋ค.
for(int value : map.values()){
// ๋ชจ๋ value ๊ฐ ์ถ๋ ฅ
System.out.println(value);
}
- ๋ชจ๋ Key, Value ๊ฐ ๊ฐ์ ธ์ค๊ธฐ
- EntrySet() ๋ฉ์๋ ์ฌ์ฉ
for(Map.Entry<String, Integer> entry : map.entrySet()){
// ์์๋๋ก Key๊ฐ value๊ฐ ๊ฐ์ ธ์ค๊ธฐ
String key = entry.getKey();
int value = entry.getValue();
}
์ ์ฒด ์ญ์
- map.clear();
map.clear();
์๋ฃ๊ฐ ์๋์ง ํ๋จ
- map.isEmpty();
- ๋ฐํ๊ฐ : boolean
- ์์ผ๋ฉด True, ์์ผ๋ฉด False
boolean check = map.isEmpty();
ํฌ๊ธฐ
- HashMap์ ์ด ํฌ๊ธฐ
- ๋ฐํ๊ฐ : int
int size = map.size();