And*_*nza 4 java split functional-programming list java-stream
这是我的清单:
List<Integer> mylist = Arrays.asList(1,2,3,4,5,6,7,8,9,10,11,12);
Run Code Online (Sandbox Code Playgroud)
假设我的列表总是偶数,那么我想将其分成 6 个相等的部分。
列出为草图:
[1,2,3,4,5,6,7,8,9,10,11,12]
Run Code Online (Sandbox Code Playgroud)
输出草图:
[[1,2][3,4],[5,6],[7,8],[9,10],[11,12]]
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我更喜欢 Java 8 流的解决方案flatMap
鉴于“子列表”的大小均相等,并且您可以将列表划分为相同大小的精确子列表,您可以计算所需的大小,然后将 an 映射IntStream到每个子列表的起始索引并使用它来提取它们:
List<Integer> mylist = Arrays.asList(1,2,3,4,5,6,7,8,9,10,11,12);
int size = mylist.size();
int parts = 6;
int partSize = size / parts;
List<List<Integer>> result =
IntStream.range(0, parts)
.mapToObj(i -> mylist.subList(i * partSize, (i + 1) * partSize)))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
编辑: @Turing85 慷慨提供的
IdeOne 演示
| 归档时间: |
|
| 查看次数: |
6788 次 |
| 最近记录: |