|
@@ -13,6 +13,7 @@ import java.io.File;
|
|
import java.lang.reflect.Field;
|
|
import java.lang.reflect.Field;
|
|
import java.nio.charset.Charset;
|
|
import java.nio.charset.Charset;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @Description: 系统常量
|
|
* @Description: 系统常量
|
|
@@ -483,4 +484,41 @@ public class SystemConstant {
|
|
map.computeIfAbsent(SystemConstant.FLOW_SUBMIT, v -> flowSubmit);
|
|
map.computeIfAbsent(SystemConstant.FLOW_SUBMIT, v -> flowSubmit);
|
|
return map;
|
|
return map;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 跨步数组(将list集合按照数量拆分成多个集合)
|
|
|
|
+ *
|
|
|
|
+ * @param datasource 数据源(初始大数据集合)
|
|
|
|
+ * @param step 跨步(多少个元素一个集合)
|
|
|
|
+ * @param <T> 泛型
|
|
|
|
+ * @return 拆分好地集合的集合
|
|
|
|
+ */
|
|
|
|
+ public static <T> List<List<T>> getStepList(List<T> datasource, int step) {
|
|
|
|
+ List<List<T>> result = new ArrayList<>();
|
|
|
|
+ int size = datasource.size();
|
|
|
|
+ for (int i = 0; i < size; i = i + step) {
|
|
|
|
+ List<T> cell = datasource.stream().skip(i).limit(step).collect(Collectors.toList());
|
|
|
|
+ result.add(cell);
|
|
|
|
+ }
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 跨步数组(将list集合按照cpu核心数量拆分成多个集合)
|
|
|
|
+ *
|
|
|
|
+ * @param datasource 数据源
|
|
|
|
+ * @param <T> 泛型
|
|
|
|
+ * @return 拆分好地集合的集合
|
|
|
|
+ */
|
|
|
|
+ public static <T> List<List<T>> getStepList(List<T> datasource) {
|
|
|
|
+ int cpuNum = Runtime.getRuntime().availableProcessors();
|
|
|
|
+ int step = datasource.size() / cpuNum + 1;
|
|
|
|
+ List<List<T>> result = new ArrayList<>();
|
|
|
|
+ int size = datasource.size();
|
|
|
|
+ for (int i = 0; i < size; i = i + step) {
|
|
|
|
+ List<T> cell = datasource.stream().skip(i).limit(step).collect(Collectors.toList());
|
|
|
|
+ result.add(cell);
|
|
|
|
+ }
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
}
|
|
}
|