Java HashMap 정리하기

KyuWon Kim·2023년 4월 29일
0
post-thumbnail

코딩테스트에 가끔 나오다보니 맨날 까먹게 되는 map 함수 정리 시작

📌 HashMap 원소 추가

HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("키1", 6);

📌 HashMap 원소 삭제

map.remove("키1"); // 키를 통해 원소 삭제
map.clear(); // 모든 entry 삭제

📌 값 출력하기

HashMap<String, String> map = new HashMap<>();
map.put("apple", "사과");
map.put("banana", "바나나");
map.put("grape", "포도");

System.out.println(map); //전체 출력 = {"apple"=사과, "banana"=바나나, "grape"=포도}
System.out.println(map.get(apple));//key값 apple의 value값 = 사과
System.out.println(map.getOrDefault("apple","사과")); // key "apple"가 존재하므로 "사과" 반환
System.out.println(map.getOrDefault("orange","오렌지")); // key "orange"가 없으므로 "오렌지" 반환

📌 HashMap 탐색

entrySet() : Entry<K, V> 를 반환
keySet() : Set 를 반환
values() : Collection 를 반환

HashMap<String, String> map = new HashMap<>();
map.put("apple", "사과");
map.put("banana", "바나나");
map.put("grape", "포도");

System.out.println(map); // {banana=바나나, apple=사과, grape=포도}
System.out.println(map.entrySet()); // [banana=바나나, apple=사과, grape=포도]
System.out.println(map.keySet()); // [banana, apple, grape]
System.out.println(map.values()); // [바나나, 사과, 포도]
  
for(Map.Entry<String, String> entrySet : map.entrySet()) {
	System.out.println(entrySet.getKey() + " : " + entrySet.getValue());
}

📌 HashMap 정렬

  1. key 기준 정렬
    key array를 따로 만들어서 key를 정렬한다. 그리고 map.get(key)로 원소를 가져온다.
Object[] mapkey = map.keySet().toArray();
Arrays.sort(mapkey);
  
for(int key:map.keySet()) {
        System.out.println("key : " + key + " / " + "value : " + map.get(key));
}
  1. value 기준 정렬
List<String> keySetList = new ArrayList<>(map.keySet());
Collections.sort(keySetList, (o1, o2) -> map.get(o1).compareTo(map.get(o2)));

for(String key : keySetList) {
	System.out.println("key : " + key + " / " + "value : " + map.get(key));
}
  
profile
블로그 이전 https://kkyu0718.tistory.com/

0개의 댓글