2차원 배열을 이용하여 표 형식으로 데이터를 출력하기 위해 임의의 데이터를 넣어주었다.
// 모든 데이터에는 합계값들도 들어가있다 List<Data> dataList = DataSetHandler.SetData(); // 모든 데이터 length : 20 List<Data> dateTotalList = DataSetHandler.SetDateTotal(dataList); // 날짜별 합계 length : 3 List<Data> telTotalList = DataSetHandler.SetTelTotal(dataList); // 번호별 합계 length : 4 List<Data> originalDataList = DataSetHandler.SetOriginalDataList(dataList); // 합계를 제외한 데이터 length : 12 List<String> telList = DataSetHandler.SetTelList(); // 번호 리스트 length : 4 String allTotal = ""; //날짜별, 번호별 총 합계
처음에 선언했던 데이터들로 2차원 배열을 만들었다
// 표형식으로 날짜별 합계, 번호별 합계를 추가해 줘야 해서 각각의 행과 열에 +2를 해주었다. String[][] aStatics = new String[dateTotalList.size()+2][telTotalList.size()+2]; //[5][6] aStatics[0][0] = " 날짜 "; // 첫번째 행의 맨마지막 열에 "합계" 를 넣어 주었다 aStatics[0][telList.size()+1] = "합계"; // 마지막 행의 첫번째 열에 "합계'를 넣어 주었다 aStatics[dateTotalList.size()+1][0] = " 합계 "; // 마지막행의 마지막 열에는 총 합계가 들어와야 한다. aStatics[dateTotalList.size()+1][telTotalList.size()+1] = allTotal; for (int i = 1; i <telList.size()+1 ; i++) { // for문을 통해 첫번째 행에 전화번호 데이터를 넣어주었다 aStatics[0][i] = telList.get(i-1).toString(); // 마지막 행에는 번호별 합계 값이 들어가야 한다. aStatics[dateTotalList.size()+1][i] = telTotalList.get(i-1).getTotal(); } // 총 데이터의 개수는 20개이기 때문에 카운트를 생성해주었다. int count = 0; // 2차원 배열에 값을 넣어주는 작업 for (int i = 1; i < dateTotalList.size()+1; i++) { // 각 행의 첫번쨰 열에 날짜 값을 넣어준다. aStatics[i][0] = dateTotalList.get(i-1).getDate(); // 각 행의 마지막 열에 날짜별 합계값을 넣어준다. aStatics[i][telTotalList.size()+1] = dateTotalList.get(i-1).getTotal(); // 2차원 배열이기 때문에 2중 for문을 돌려주었다 for (int j = 1; j < telTotalList.size()+1; j++) { // i번째 행의 j번째 열에 각각의 데이터를 넣어준다 aStatics[i][j] = originalDataList.get(count).getTotal(); // 모든 데이터를 넣어주기 위해 count를 만들었고 데이터가 삽입될때 마다 증가시켜 주었다. count++; } }
//2차원 배열의 출력
for (int i = 0; i < aStatics.length; i++) {
String[] innerArr = aStatics[i];
for (int j = 0; j < innerArr.length; j++) {
System.out.print(innerArr[j] + " ");
}
System.out.println("");
}