import java.util.ArrayList;
import java.util.List;
class Ideone {
public static void main
(String[] args
) { try {
partition
(List.
of(1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11),
2); System.
out.
println("Should have thrown, but did not"); System.
out.
println("Threw exception as expepcted"); }
List.
of(1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12),
2));
List.
of(1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12),
3));
List.
of(1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12),
4));
}
public static List<List<Integer>> partition(
List<Integer> list,
int partitionSize) {
final int listSize = list.size();
if (listSize % partitionSize != 0) {
+ "divisible without remainder by the partition size.");
}
final List<List<Integer>> partition = new ArrayList<>();
for (int start = 0; start < listSize; start += partitionSize) {
partition.add(list.subList(start, start + partitionSize));
}
return partition;
}
}
aW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CmltcG9ydCBqYXZhLnV0aWwuTGlzdDsKCmNsYXNzIElkZW9uZSB7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgewoJCXRyeSB7CgkJCXBhcnRpdGlvbihMaXN0Lm9mKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSksIDIpOwoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlNob3VsZCBoYXZlIHRocm93biwgYnV0IGRpZCBub3QiKTsKCQl9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgewoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlRocmV3IGV4Y2VwdGlvbiBhcyBleHBlcGN0ZWQiKTsKCQl9CgkJU3lzdGVtLm91dC5wcmludGxuKHBhcnRpdGlvbigKCQkJTGlzdC5vZigxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyKSwKCQkJMikpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihwYXJ0aXRpb24oCgkJCUxpc3Qub2YoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiksCgkJCTMpKTsKCQkJCVN5c3RlbS5vdXQucHJpbnRsbihwYXJ0aXRpb24oCgkJCUxpc3Qub2YoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiksCgkJCTQpKTsKCX0KCQoJcHVibGljIHN0YXRpYyBMaXN0PExpc3Q8SW50ZWdlcj4+IHBhcnRpdGlvbigKCQkJTGlzdDxJbnRlZ2VyPiBsaXN0LCAKCQkJaW50IHBhcnRpdGlvblNpemUpIHsKCQlmaW5hbCBpbnQgbGlzdFNpemUgPSBsaXN0LnNpemUoKTsKCQlpZiAobGlzdFNpemUgJSBwYXJ0aXRpb25TaXplICE9IDApIHsKCQkJdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVGhlIHNpemUgb2YgdGhlIGxpc3QgbXVzdCBiZSAiCgkJCQkJKyAiZGl2aXNpYmxlIHdpdGhvdXQgcmVtYWluZGVyIGJ5IHRoZSBwYXJ0aXRpb24gc2l6ZS4iKTsKCQl9CgkJCgkJZmluYWwgTGlzdDxMaXN0PEludGVnZXI+PiBwYXJ0aXRpb24gPSBuZXcgQXJyYXlMaXN0PD4oKTsKCQlmb3IgKGludCBzdGFydCA9IDA7IHN0YXJ0IDwgbGlzdFNpemU7IHN0YXJ0ICs9IHBhcnRpdGlvblNpemUpIHsKCQkJcGFydGl0aW9uLmFkZChsaXN0LnN1Ykxpc3Qoc3RhcnQsIHN0YXJ0ICsgcGFydGl0aW9uU2l6ZSkpOwoJCX0KCQlyZXR1cm4gcGFydGl0aW9uOwoJfQp9
Threw exception as expepcted
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]]
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]