Home Java Syntex - hashmap
Post
Cancel

Java Syntex - hashmap

Java Collections : Hashmap, linkedHashMap , TreeMap 차이

TreeMap 정렬이 되는데 오름차순이다.

 
Hashmap
LinkedHashMap
TreeMap
순서
X
O
O
정렬
X
X
O

HashMap

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지정

HashMap 삭제
1
2
map.remove(1); //key값 1 제거
map.clear(); //모든 값 제거
EntrySet()
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());
}

KeySet(), values()도있음
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));
}
getOrDefalut()

찾고자하는 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 전공지식노트

This post is licensed under CC BY 4.0 by the author.