구현해야했던 기능은 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에서 데이터 출력하는 과정은 위의 코드에 주석을 달아놨으니 참고하기를 바란다!
'Java' 카테고리의 다른 글
| [Java / SWT] for문을 이용해 배열과 콤보박스에 데이터 넣는 방법 (0) | 2022.01.07 |
|---|---|
| JSP / JavaScript / Servlet (0) | 2021.05.21 |
| [JAVA] 접근제한자 종류 (0) | 2021.05.21 |
| [JAVA] Class, Object, Instance 차이 (0) | 2021.05.21 |
| Java 그게 뭔데, 어떻게 하는 건데? (0) | 2021.04.18 |