package com.batch.util; import java.util.ArrayList; import java.util.List; import java.util.Map; import lombok.extern.slf4j.Slf4j; @Slf4j public class StatisticsUtil { // public static void main(String[] args) { // // List arr = new ArrayList(); // arr.add(Map.of("col", 100)); // arr.add(Map.of("col", 200)); // arr.add(Map.of("col", 300)); // arr.add(Map.of("col", 400)); // arr.add(Map.of("col", 500)); // // List result = new ArrayList(); // List> resultAll = new ArrayList>(); // reculsion(arr, result, 3, arr.size(), 2, resultAll); // // log.info("resultAll=" + resultAll.toString()); // } /** * 조합 구하기 * * @param arr : 기준 리스트 * @param result : 결과를 담아줄 리스트 * @param index : 반복문 시작 인덱스 * @param n : 전체 갯수 * @param r : 뽑을 갯수 */ public static void reculsion(List arr, List result, int index, int n, int r, List> resultAll) { if (r == 0) { log.debug("Reuslt=" + result.toString()); List lmConfirmList = new ArrayList(); lmConfirmList.addAll(result); resultAll.add(lmConfirmList); return; } for (int i = index; i < n; i++) { result.add(arr.get(i)); reculsion(arr, result, i + 1, n, r - 1, resultAll); result.remove(result.size() - 1); } } }