Java Collections : Hashmap, linkedHashMap , TreeMap 차이
TreeMap 정렬이 되는데 오름차순이다.
HashMap
1
2
3
4
5
HashMap<String,String> map1 = new HashMap<>();//Basic
HashMap<String,String> map2 = new HashMap<>(map1);//map1 복사
HashMap<String,String> map3 = new HashMap<>(10);//사이즈 지정
HashMap<String,String> map4 = new HashMap<>(10, 0.7f);//사이즈,load factor지정
1
2
map.remove(1); //key값 1 제거
map.clear(); //모든 값 제거
1
2
3
4
5
6
7
8
9
10
11
for (Entry<Integer, String> entry : map.entrySet()) {
System.out.println("[Key]:" + entry.getKey() + " [Value]:" + entry.getValue());
}
//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());
}
1
2
3
4
5
6
7
8
9
10
for(Integer i : map.keySet()){ //저장된 key값 확인
System.out.println("[Key]:" + i + " [Value]:" + map.get(i));
}
//Iterator
Iterator<Integer> keys = map.keySet().iterator();
while(keys.hasNext()){
int key = keys.next();
System.out.println("[Key]:" + key + " [Value]:" + map.get(key));
}
찾고자하는 Key가 존재한다면 key의 value값을 반환하고 없으면 default값을 반환한다.
key가 중복되면 가지고 있던 값에다가 value값에 덮어쓰겠다.
1
2
3
4
5
6
7
8
9
10
11
public static void main(String arg[]) {
String [] abc = { "A", "B", "C" ,"C", "C"};
HashMap<String, Integer> hm = new HashMap<>();
for(String key : abc) {
hm.put(key, hm.getOrDefault(key, 0) + 1);
}
System.out.println(hm);
//{A=1, B=1, C=3}
}
참고자료
Head First 디자인패턴
면접을 위한 CS 전공지식노트