Java LIST做批量分组切割

对Java LIST做批量分组切割,方便数据进行多线程处理或者其他处理

方法1:

//按每500个一组分割
public static void main(String[] args) {
    int MAX_SEND = 500;
    List<Integer> list = new ArrayList<>();
    for(int i=0;i<1000;i++){
        list.add(i);
    }
    int limit = (list.size() + MAX_SEND - 1) / MAX_SEND;
    List<List<Integer>> mglist = new ArrayList<>();
    Stream.iterate(0, n -> n + 1).limit(limit).forEach(i -> {
        mglist.add(list.stream().skip(i * MAX_SEND).limit(MAX_SEND).collect(Collectors.toList()));
    });
    List<List<Integer>> splitList = Stream.iterate(0, n -> n + 1).limit(limit).parallel().map(a -> list.stream().skip(a * MAX_SEND).limit(MAX_SEND).parallel().collect(Collectors.toList())).collect(Collectors.toList());
    for(List<Integer> list1:splitList){
        System.out.println("---------------------------------------------");
        System.out.println(JSON.toJSONString(list1));
    }
}

 

方法2 :直接使用公共方法操作

        List<List<Map<String,Object>>> lists = ListUtils.partition(editList,1000);
        for(List<Map<String,Object>> sublist: lists){
            //todo sublist
        }

方法3:

原文地址:https://www.cnblogs.com/lewisat/p/14523325.html