How to distribute a list into sub-lists, keeping the original order of the elements?

后端 未结 2 1455
轮回少年
轮回少年 2021-01-15 10:19

How to split a list into a given number of lists, taking the elements in order and distributing them to the sub-lists (so not partitioning the list)?

I would like to

2条回答
  •  栀梦
    栀梦 (楼主)
    2021-01-15 11:13

    Something like this could put all your lists into a map, then you just need to get the sub-lists out of the map

    int count = 0;
    Map> mapLists = list.stream()
                                .peek(i -> count ++)
                                .collect(Collectors.groupingBy(i -> count % numOfSubLists))
    

    Another way using Guava

    https://google.github.io/guava/releases/snapshot/api/docs/com/google/common/collect/Lists.html#partition(java.util.List,%20int)

    List> lists = Lists.partition(list, noOfPartitions);
    

提交回复
热议问题