import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class DataTableProcessor {
public static void main(String[] args) {
// 초기 DataTable을 List of Map으로 가정
List<Map<String, String>> result_dt = new ArrayList<>();
// 예시 데이터 추가
Map<String, String> row1 = new HashMap<>();
row1.put("Column1", "1234$1233$5555");
row1.put("Column2", "SomeValue1");
result_dt.add(row1);
Map<String, String> row2 = new HashMap<>();
row2.put("Column1", "8888$9999");
row2.put("Column2", "SomeValue2");
result_dt.add(row2);
// 변환된 결과를 저장할 리스트
List<Map<String, String>> transformed_dt = new ArrayList<>();
// 각 행을 처리하여 Column1의 값을 분리하고 행을 확장
for (Map<String, String> row : result_dt) {
String column1Value = row.get("Column1");
String column2Value = row.get("Column2");
// Column1의 값을 '$' 구분자로 분할
String[] splitValues = column1Value.split("\\$");
// 각 분할된 값으로 새로운 행을 생성하고 transformed_dt에 추가
for (String value : splitValues) {
Map<String, String> newRow = new HashMap<>();
newRow.put("Column1", value);
newRow.put("Column2", column2Value); // Column2 값은 동일하게 유지
transformed_dt.add(newRow);
}
}
// 결과 출력
System.out.println("Transformed DataTable:");
for (Map<String, String> row : transformed_dt) {
System.out.println(row);
}
}
}
코드 설명
- 초기화 및 데이터 설정:
- result_dt는 원본 데이터가 담긴 리스트로, 각 행은 Map<String, String> 구조를 사용하여 각 열을 키-값 쌍으로 저장합니다.
- Column1에는 $로 구분된 문자열, Column2에는 다른 값이 들어 있습니다.
- 반복문을 통한 데이터 변환:
- result_dt의 각 행을 순회하며 Column1의 값을 $를 기준으로 분할합니다.
- splitValues 배열의 각 요소는 새로운 행의 Column1 값이 됩니다. Column2 값은 원본 데이터와 동일하게 유지됩니다.
- 변환된 데이터 추가:
- 분할된 각 값에 대해 새로운 Map<String, String>을 생성하고, transformed_dt 리스트에 추가하여 변환된 데이터 테이블을 생성합니다.
'정리 > Language' 카테고리의 다른 글
java code 분석기 (1) | 2024.11.19 |
---|---|
[Python] 코드 블럭, 괄호 표기, 괄호 힌트 (Code Block, Bracket Notation) (0) | 2023.11.08 |
비전공자가 본 "c 프로그래밍" 저자 윤성우 후기 (1) | 2015.11.06 |