
ํค(key) : ์ปฌ๋ ์ ๋ด์ ํค(key) ์ค์์ ์ ์ผํด์ผ ํฉ๋๋ค.
๊ฐ(value) : ํค์ ๋ฌ๋ฆฌ ๋ฐ์ดํฐ์ ์ค๋ณต์ ํ์ฉํฉ๋๋ค.
ํค(key)๋ ์์ด๋, ๊ฐ(value)์ ํจ์ค์๋๋ผ๊ณ ์๊ฐํ๋ฉด ์ฝ๊ฒ ์ดํดํ ์ ์์ต๋๋ค. ์์ด๋๋ ์ค๋ณต๋๋ฉด ์๋์ง๋ง ํจ์ค์๋๋ ์ค๋ณต๋ ์๋ ์์ต๋๋ค.
๐ฆ HashMap ์์ฑ์์ ๋ฉ์๋
| ์์ฑ์์ ๋ฉ์๋ | ์ค๋ช |
|---|---|
HashMap() | ๋น์ด ์๋ HashMap์ ์์ฑํ๋ค. |
HashMap(int initialCapacity) | ์ด๊ธฐ ์ฉ๋์ ์ค์ ํ์ฌ HashMap์ ์์ฑํ๋ค. |
HashMap(int initialCapacity, float loadFactor) | ์ด๊ธฐ ์ฉ๋๊ณผ ๋ก๋ ํฉํฐ๋ฅผ ์ค์ ํ์ฌ HashMap์ ์์ฑํ๋ค. |
HashMap(Map<? extends K, ? extends V> m) | ์ง์ ๋ Map์ ์์๋ฅผ ํฌํจํ๋ HashMap์ ์์ฑํ๋ค. |
void clear() | HashMap์์ ๋ชจ๋ ๋งคํ์ ์ ๊ฑฐํ๋ค. |
Object clone() | HashMap์ ์์ ๋ณต์ฌ๋ณธ์ ๋ฐํํ๋ค. |
boolean containsKey(Object key) | ์ง์ ๋ ํค๊ฐ HashMap์ ์๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๋ค. |
boolean containsValue(Object value) | ์ง์ ๋ ๊ฐ์ด ํ๋ ์ด์์ ํค์ ๋งคํ๋์ด ์๋์ง ํ์ธํ๋ค. |
Set<Map.Entry<K, V>> entrySet() | HashMap์ ์๋ ๋งคํ์ Set ๋ทฐ๋ฅผ ๋ฐํํ๋ค. |
V get(Object key) | ์ง์ ๋ ํค์ ๋งคํ๋ ๊ฐ์ ๋ฐํํ๋ค. |
boolean isEmpty() | HashMap์ด ๋น์ด ์๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๋ค. |
| HashMap์ ์๋ ํค์ Set ๋ทฐ๋ฅผ ๋ฐํํ๋ค. | |
V put(K key, V value) | ์ง์ ๋ ํค์ ์ง์ ๋ ๊ฐ์ ๋งคํํ๋ค. |
void putAll(Map<? extends K, ? extends V> m) | ์ง์ ๋ Map์ ๋ชจ๋ ๋งคํ์ HashMap์ ์ถ๊ฐํ๋ค. |
V remove(Object key) | HashMap์์ ์ง์ ๋ ํค์ ๋งคํ์ ์ ๊ฑฐํ๋ค. |
int size() | HashMap์ ์๋ ๋งคํ ์๋ฅผ ๋ฐํํ๋ค. |
Collection<V> values() | HashMap์ ์๋ ๊ฐ์ Collection ๋ทฐ๋ฅผ ๋ฐํํ๋ค. |
๐ฆ HashMap ์์
import java.util.HashMap;
import java.util.Scanner;
public class C06HashMap {
public static void main(String[] args) {
HashMap map = new HashMap();
map.put("myId","1234");
map.put("asdf","222");
map.put("asdf","1234"); //ํค ์ค๋ณต๋์ด ๋ฎ์ด์
Scanner scanner = new Scanner(System.in);
while (true){
System.out.println("id์ password๋ฅผ ์
๋ ฅํด์ฃผ์ธ์.");
System.out.print("id : ");
String id = scanner.nextLine().trim();
System.out.print("password : ");
String password = scanner.nextLine().trim();
System.out.println();
if(!map.containsKey(id)){
System.out.println("์
๋ ฅํ์ id๋ ์กด์ฌํ์ง ์์ต๋๋ค. ๋ค์ ์
๋ ฅํด์ฃผ์ธ์.");
continue;
}else{
if(!(map.get(id)).equals(password)){
System.out.println("๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ์ง ์์ต๋๋ค. ๋ค์ ์
๋ ฅํด์ฃผ์ธ์.");
}else {
System.out.println("id์ ๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํฉ๋๋ค.");
break;
}
}
}
}
}
id์ ํจ์ค์๋๋ฅผ ํค์ ๊ฐ์ ์์ผ๋ก ์ ์ฅํ ํ ์
๋ ฅ ๋ id๋ฅผ ํค๋ก HashMap์์ ๊ฒ์ํด์ ์ป์ ๊ฐ(ํจ์ค์๋)์ ์
๋ ฅ๋ ํจ์ค์๋์ ๋น๊ตํฉ๋๋ค.
import java.util.*;
import static java.lang.StringTemplate.STR;
public class C07HashMap {
public static void main(String[] args) {
HashMap map = new HashMap();
map.put("๊น์๋ฐ", 90);
map.put("๊น์๋ฐ", 100);
map.put("์ด์๋ฐ", 100);
map.put("๊ฐ์๋ฐ", 80);
map.put("์์๋ฐ", 90);
Set set = map.entrySet();
Iterator it = set.iterator();
while (it.hasNext()){
Map.Entry e = (Map.Entry) it.next(); //ํ ์ค ์ฉ ์ถ๋ ฅ
System.out.println(STR."์ด๋ฆ : \{e.getKey()}, ์ ์ : \{e.getValue()}");
}
set = map.keySet();
System.out.println("์ฐธ๊ฐ์ ๋ช
๋จ : " +set);
Collection values = map.values();
it = values.iterator();
int total = 0;
while (it.hasNext()){
Integer i = (Integer) it.next();
total += i.intValue();
}
System.out.println("์ด์ : " + total);
System.out.println("ํ๊ท : " + (double)total/set.size());
System.out.println("์ต๊ณ ์ ์ : " + Collections.max(values));
System.out.println("์ต์์ ์ : " + Collections.min(values));
}
}
์ถ๋ ฅ๊ฒฐ๊ณผ
์ด๋ฆ : ์์๋ฐ, ์ ์ : 90
์ด๋ฆ : ๊น์๋ฐ, ์ ์ : 100
์ด๋ฆ : ๊ฐ์๋ฐ, ์ ์ : 80
์ด๋ฆ : ์ด์๋ฐ, ์ ์ : 100
์ฐธ๊ฐ์ ๋ช ๋จ : [์์๋ฐ, ๊น์๋ฐ, ๊ฐ์๋ฐ, ์ด์๋ฐ]
์ด์ : 370
ํ๊ท : 92.5
์ต๊ณ ์ ์ : 100
์ต์์ ์ : 80
entrySet()์ ํค์ ๊ฐ์ ํจ๊ป ์ฝ์ด ์ฌ ์๋ ์๊ณ keySet()์ด๋ values()๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๊ฐ ๋ฐ๋ก ์ฝ์ด์ฌ ์ ์์ต๋๋ค.
Set์ ์ค๋ณต๋ ์์๋ฅผ ํ์ฉํ์ง ์๊ณ , ์์๋ฅผ ๋ณด์ฅํ์ง ์์ต๊ธฐ ๋๋ฌธ์ entrySet(), keySet() ๋ ๋ฉ์๋์์๋ Set์ ์ฌ์ฉํฉ๋๋ค.values()๋ List์ Set์ ์์ ์ธํฐํ์ด์ค์ธ Collection์ ์ฌ์ฉํ์ฌ ๋ฐํ๊ฐ์ด Set์ด๋ List์ ๊ฐ์ ํน์ ์ธํฐํ์ด์ค์ ์์กดํ์ง ์๊ธฐ ์ํจ(์ ์ฐ์ฑ)์
๋๋ค.๐ฆ ํด์ฑ๊ณผ ํด์ํจ์
๐ฆ TreeMap ์์ฑ์์ ๋ฉ์๋
| ์์ฑ์์ ๋ฉ์๋ | ์ค๋ช |
|---|---|
TreeMap() | ๋น์ด ์๋ TreeMap์ ์์ฑํ๋ค. |
TreeMap(Comparator<? super K> comparator) | ์ง์ ๋ Comparator๋ฅผ ์ฌ์ฉํ์ฌ TreeMap์ ์์ฑํ๋ค. |
TreeMap(Map<? extends K, ? extends V> m) | ์ง์ ๋ Map์ ์์๋ฅผ ํฌํจํ๋ TreeMap์ ์์ฑํ๋ค. |
TreeMap(SortedMap<K, ? extends V> m) | ์ง์ ๋ SortedMap์ ์์๋ฅผ ํฌํจํ๋ TreeMap์ ์์ฑํ๋ค. |
void clear() | TreeMap์์ ๋ชจ๋ ๋งคํ์ ์ ๊ฑฐํ๋ค. |
Object clone() | TreeMap์ ์์ ๋ณต์ฌ๋ณธ์ ๋ฐํํ๋ค. |
Comparator<? super K> comparator() | TreeMap์์ ์ฌ์ฉ ์ค์ธ Comparator๋ฅผ ๋ฐํํ๋ค. |
boolean containsKey(Object key) | ์ง์ ๋ ํค๊ฐ TreeMap์ ์๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๋ค. |
boolean containsValue(Object value) | ์ง์ ๋ ๊ฐ์ด ํ๋ ์ด์์ ํค์ ๋งคํ๋์ด ์๋์ง ํ์ธํ๋ค. |
Set<Map.Entry<K, V>> entrySet() | TreeMap์ ์๋ ๋งคํ์ Set ๋ทฐ๋ฅผ ๋ฐํํ๋ค. |
Map.Entry<K, V> firstEntry() | TreeMap์ ์ฒซ ๋ฒ์งธ (๊ฐ์ฅ ์์) ํญ๋ชฉ์ ๋ฐํํ๋ค. |
K firstKey() | TreeMap์ ์ฒซ ๋ฒ์งธ (๊ฐ์ฅ ์์) ํค๋ฅผ ๋ฐํํ๋ค. |
Map.Entry<K, V> lastEntry() | TreeMap์ ๋ง์ง๋ง (๊ฐ์ฅ ํฐ) ํญ๋ชฉ์ ๋ฐํํ๋ค. |
K lastKey() | TreeMap์ ๋ง์ง๋ง (๊ฐ์ฅ ํฐ) ํค๋ฅผ ๋ฐํํ๋ค. |
Map.Entry<K, V> lowerEntry(K key) | ์ฃผ์ด์ง ํค๋ณด๋ค ์์ ๊ฐ์ฅ ํฐ ํค๋ฅผ ๊ฐ์ง ๋งคํ์ ๋ฐํํ๋ค. |
K lowerKey(K key) | ์ฃผ์ด์ง ํค๋ณด๋ค ์์ ๊ฐ์ฅ ํฐ ํค๋ฅผ ๋ฐํํ๋ค. |
NavigableSet<K> navigableKeySet() | TreeMap์ ํค์ ๋ํ ํ์ ๊ฐ๋ฅํ Set ๋ทฐ๋ฅผ ๋ฐํํ๋ค. |
Map.Entry<K, V> ceilingEntry(K key) | ์ฃผ์ด์ง ํค์ ๊ฐ๊ฑฐ๋ ํฐ ํค ์ค ๊ฐ์ฅ ์์ ํค๋ฅผ ๊ฐ์ง ๋งคํ์ ๋ฐํํ๋ค. |
K ceilingKey(K key) | ์ฃผ์ด์ง ํค์ ๊ฐ๊ฑฐ๋ ํฐ ํค ์ค ๊ฐ์ฅ ์์ ํค๋ฅผ ๋ฐํํ๋ค. |
Map.Entry<K, V> floorEntry(K key) | ์ฃผ์ด์ง ํค์ ๊ฐ๊ฑฐ๋ ์์ ํค ์ค ๊ฐ์ฅ ํฐ ํค๋ฅผ ๊ฐ์ง ๋งคํ์ ๋ฐํํ๋ค. |
K floorKey(K key) | ์ฃผ์ด์ง ํค์ ๊ฐ๊ฑฐ๋ ์์ ํค ์ค ๊ฐ์ฅ ํฐ ํค๋ฅผ ๋ฐํํ๋ค. |
Map.Entry<K, V> higherEntry(K key) | ์ฃผ์ด์ง ํค๋ณด๋ค ํฐ ๊ฐ์ฅ ์์ ํค๋ฅผ ๊ฐ์ง ๋งคํ์ ๋ฐํํ๋ค. |
K higherKey(K key) | ์ฃผ์ด์ง ํค๋ณด๋ค ํฐ ๊ฐ์ฅ ์์ ํค๋ฅผ ๋ฐํํ๋ค. |
Map.Entry<K, V> pollFirstEntry() | TreeMap์์ ์ฒซ ๋ฒ์งธ ํญ๋ชฉ์ ์ ๊ฑฐํ๊ณ ๋ฐํํ๋ค. |
Map.Entry<K, V> pollLastEntry() | TreeMap์์ ๋ง์ง๋ง ํญ๋ชฉ์ ์ ๊ฑฐํ๊ณ ๋ฐํํ๋ค. |
void putAll(Map<? extends K, ? extends V> map) | ์ง์ ๋ Map์ ๋ชจ๋ ๋งคํ์ TreeMap์ ์ถ๊ฐํ๋ค. |
V put(K key, V value) | ์ง์ ๋ ํค์ ์ง์ ๋ ๊ฐ์ด ๋งคํ๋๋๋ก ํ๋ค. |
V remove(Object key) | TreeMap์์ ์ง์ ๋ ํค์ ๋งคํ์ ์ ๊ฑฐํ๋ค. |
int size() | TreeMap์ ์๋ ๋งคํ ์๋ฅผ ๋ฐํํ๋ค. |
Collection<V> values() | TreeMap์ ์๋ ๊ฐ์ Collection ๋ทฐ๋ฅผ ๋ฐํํ๋ค. |