我为自己编写了一个实用程序,用于将列表分成给定大小的批次。我只是想知道是否已经有针对此的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; }
请让我知道是否已经有相同的现有实用程序。
看看: Lists.partition(java.util.List, int)
Lists.partition(java.util.List, int)
返回列表的连续子列表,每个子列表大小相同(最终列表可能更小)。例如,对包含[a, b, c, d, e]分区大小为3 的列表进行分区将产生[[a, b, c],[d, e]]-一个外部列表,包含两个由三个和两个元素组成的内部列表,所有列表均按原始顺序排列。
[a, b, c, d, e]
[[a, b, c],[d, e]]