Java

JAVA - HashMap

장진혁 2023. 2. 16. 21:08

 

HashMap 선언

HashMap<String,String> map2 = new HashMap<>();//new에서 타입 파라미터 생략가능
HashMap<String,String> map4 = new HashMap<>(10);//초기 용량(capacity)지정

HashMap 값 추가

map.put(Key,value); //값 추가

// map.getOrDefault(ps,0)+1
// ps키의 값을 가지고오는데 값이 없으면 0을 리턴 (0+1해서 1을 넣어줌)
for (String ps : participant){
	map.put(ps,map.getOrDefault(ps,0)+1);
    
// map.get(cs)-1
// cs키의 값을 가지고와서 -1한 다음 0을 넣음
for (String cs : completion){
	map.put(cs,map.get(cs)-1);

HashMap 값 출력

 - entrySet이 KeySet보다 시간이 많이 소요되므로 많은 양의 데이터가 필요하면 entrySet() 이 좋다고 한다.

for (Map.Entry<String, Integer> entry : map.entrySet()){
	if (entry.getValue()!=0) {
		answer += entry.getKey();
        
        
System.out.println(map); //전체 출력 : {1=사과, 2=바나나, 3=포도}
System.out.println(map.get(1));//key값 1의 value얻기 : 사과

//entrySet() 활용
for (Entry<Integer, String> entry : map.entrySet()) {
    System.out.println("[Key]:" + entry.getKey() + " [Value]:" + entry.getValue());
}

//KeySet() 활용
for(Integer i : map.keySet()){ //저장된 key값 확인
    System.out.println("[Key]:" + i + " [Value]:" + map.get(i));
}

HashMap 값 출력 - Iterator 사용

//entrySet().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().iterator()
Iterator<Integer> keys = map.keySet().iterator();
while(keys.hasNext()){
    int key = keys.next();
    System.out.println("[Key]:" + key + " [Value]:" +  map.get(key));

 

 

 

import java.util.HashMap;
import java.util.Map;

public class ex20 { // 완주하지 못한 선수
    public static String solution(String[] participant, String[] completion) {
        String answer = "";

        HashMap<String, Integer> map = new HashMap<>();
        // map.getOrDefault(ps,0)+1
        // ps키의 값을 가지고오는데 값이 없으면 0을 리턴 (0+1해서 1을 넣어줌)
        for (String ps : participant){
            map.put(ps,map.getOrDefault(ps,0)+1);
        }
        // map.get(cs)-1
        // cs키의 값을 가지고와서 -1한 다음 0을 넣음
        for (String cs : completion){
            map.put(cs,map.get(cs)-1);
        }
        for (Map.Entry<String, Integer> entry : map.entrySet()){
            if (entry.getValue()!=0) {
                answer += entry.getKey();
                break;
            }
        }
        return answer;
    }

    public static void main(String[] args) {
        String[] participant = {"leo", "kiki", "eden"};
        String[] completion = {"eden", "kiki"};
        System.out.println(solution(participant, completion));
    }
}

 

 

 

 

 

 

 

참고사이트 - 참고자료

https://coding-factory.tistory.com/556

 

[Java] 자바 HashMap 사용법 & 예제 총정리

HashMap 이란? HashMap은 Map 인터페이스를 구현한 대표적인 Map 컬렉션입니다. Map 인터페이스를 상속하고 있기에 Map의 성질을 그대로 가지고 있습니다. Map은 키와 값으로 구성된 Entry객체를 저장하는

coding-factory.tistory.com