Java

[Java] List<Map<String, Object>> 데이터 출력하여 array에 값 추가하기

다애루 2022. 1. 10. 11:55

 

 

 

구현해야했던 기능은 List<Map<String, Object>> 형태의 데이터를 array에 담고 콤보박스에 추가하는 것!

 

일반적인 웹 개발에서 콤보박스에 데이터를 세팅하는 경우, 

데이터 타입이 List<Map<String, Object>> 인 데이터를 이중 for문을 통해서 세팅이 가능했다.

사용중인 솔루션은 콤보박스에 데이터를 넣을 때 array 형태만 넣어줄 수 있어

데이터를 꺼내 array에 넣어주는 작업이 한번 더 필요했다. 

 

 

// Error
String arr[];
arr[i] = map.getValues();  

// Debbugging
String arr[] = new String[list.size()];   //배열 크기를 ListMap 사이즈로 지정

for(int i=0; i< list.size(); i++){        //ListMap 사이즈만큼 반복
	for(Entry<String, Object> data : list.get(i).entrySet()){  // i번 Map부터 데이터 출력
		arr[i] = String.valueOf(data.getValue());           // i번 Map의 Value를 배열의 i번 인덱스에 추가
}

 

 

놓쳤던 부분은 '배열의 선언'과 관련된 부분이다.

배열의 크기를 지정하지 않고 선언한 배열에 바로 값을 추가하니 계속 에러가 발생했다.

 

String arr[] = new String[num];    //num 자리에 배열 사이즈 입력

 

배열을 오랜만에 사용해서 잊고 있었던 부분인데 오랜만에 함수의 기본 문법을 되새기게 되었다.

List Map에서 데이터 출력하는 과정은 위의 코드에 주석을 달아놨으니 참고하기를 바란다!