자기주도학습/코딩 테스트

ConvertListtoObject 2차원 배열을 HashMap으로 리턴하기

min민 2023. 1. 20.

 

Q: 2차원 배열(배열이 요소로 입력됨.)을 입력 받아 각 배열을 이용해 만든 HashMap을 리턴하기.

 

/*
입력: arr[i]는 string
arr[i].length는 0 또는 2

출력: HashMap<String, String>으로 리턴.

주의사항: 중복되는 키의 경우 초기의 값을 사용
빈 배열을 입력받은 경우 빈 배열 리턴.
arr[i]의 길이가 0 인경우 무시하기.

*/

 

A:

public class min {
  public HashMap<String, String> convertListToHashMap(String[][] arr) {
  
  // 새로운 해시맵을 생성하기.
  HashMap<String, String> map = new HashMap<>();
  
  // 빈 배열을 입력받은경우 빈 해시맵을 리턴 
  // if(arr.length == 0) return new HashMap<>(); 
  if(arr.length == 0) return map; // 어차피 map이 비어있으니 이렇게 해도됨.
  
  
  // for 순회하면서 map에 put해주기.
    for(int i = 0; i < arr.length; i++){
    
    // if arr[i]의 길이가 0이 아니라면,
	  if(arr[i].length != 0){ 
      
    // 중복되는 키의 경우, 초기의 값을 사용합니다.
    // map 해시맵 [i][0]에 키가 있으면 true 가 나옴.
    // 없으면 false가 나오겠지? 따라서 해시맵 map에 arr[i][0]가 false 비어있다면 추가하세요 가맞음.
    // (*Point => ) 비어있을때 추가하지않고 있을때 추가하면 초기 값이아니라 후기값을 가지고오게됨.
		if(!map.containsKey(arr[i][0])) { 

    // map에 put하세요. [i][0]과 [i][1]을.
          map.put(arr[i][0], arr[i][1]); 
                }
          }  
     }
    return map;
     
  }
}

 

 

댓글