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
}
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号