小编典典

是否有一个通用的 Java 实用程序可以将列表分成多个批次?

all

我给自己写了一个实用程序,可以将列表分成给定大小的批次。我只是想知道是否已经有任何 apache commons util 用于此。

public static <T> List<List<T>> getBatches(List<T> collection,int batchSize){
    int i = 0;
    List<List<T>> batches = new ArrayList<List<T>>();
    while(i<collection.size()){
        int nextInc = Math.min(collection.size()-i,batchSize);
        List<T> batch = collection.subList(i,i+nextInc);
        batches.add(batch);
        i = i + nextInc;
    }

    return batches;
}

请让我知道是否已经有任何现有的实用程序。


阅读 74

收藏
2022-06-27

共1个答案

小编典典

Google Guava查看:
Lists.partition(java.util.List, int)

返回列表的连续子列表,每个子列表大小相同(最终列表可能更小)。例如,对包含[a, b, c, d, e]分区大小为 3
的列表进行分区会产生[[a, b, c], [d, e]]--
一个包含两个由三个和两个元素组成的内部列表的外部列表,所有这些都按原始顺序排列。

2022-06-27