Javaで数万件の要素をもつリストを1000件ずつのリストに分割したい
いわゆるパーティションというやつだが、Javaの標準ライブラリにはないみたい
こちらを参考にしたところ、いくつかやり方があるみたいだが外部ライブラリは極力いれたくない www.baeldung.com
ということで自作した
public static <T> List<List<T>> partition(List<T> list, int size) { if (null == list || list.isEmpty() || size <= 0) { return Collections.emptyList(); } int block = (list.size() + (size - 1)) / size; List<List<T>> partitions = new ArrayList<>(block); for (int i = 0; i < block; i++) { int start = i * size; int end = Math.min(start + size, list.size()); partitions.add(list.subList(start, end)); } return partitions; }
これで分割することができた