flatMap 算子

// F_KJQJ 会计期间

private static List<String> kjqjList = Arrays.asList("202208", "202209");

// F_KMBH 科目编号
private static List<String> kmbhList = Arrays.asList("1001", "1002");

// F_CODE 责任中心
private static List<String> codeList = Arrays.asList("201222221002", "201222221003", "201222221004");

 

需要计算上面三个维度的笛卡尔积组合,调用远程fmis接口获取数据。


public final static String delimiter = " ";

public static List<String> descartes(List<String>... lists) {

List<String> result = new ArrayList<>();
for (List<String> list : lists) {
if (CollectionUtils.isEmpty(result)) {
result = list;
} else {
result = result.stream().flatMap(itemParent -> list.stream().map(itemChild -> itemParent + ToolsUtil.delimiter + itemChild))
.collect(Collectors.toList());
}
}
return result;

}


List<String> descartesList = ToolsUtil.descartes(kjqjList, kmbhList, codeList);

for (String descartes : descartesList) {
    //rpc
}
posted @ 2022-09-29 20:31  163博客  阅读(22)  评论(0)    收藏  举报