/* package whatever; // don't place package name! */
import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;
import java.util.stream.Collectors;
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) {
int listSize = list.size();
if (listSize % partitionSize != 0) {
+ "divisible without remainder by the partition size.");
}
final int parts = listSize / partitionSize;
return IntStream.range(0, parts)
.mapToObj(i -> list.subList(2 * i, 2 * i + partitionSize))
.collect(Collectors.toList());
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CmltcG9ydCBqYXZhLnV0aWwuTGlzdDsKaW1wb3J0IGphdmEudXRpbC5zdHJlYW0uSW50U3RyZWFtOwppbXBvcnQgamF2YS51dGlsLnN0cmVhbS5Db2xsZWN0b3JzOwoKY2xhc3MgSWRlb25lIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB7CgkJdHJ5IHsKCQkJcGFydGl0aW9uKExpc3Qub2YoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExKSwgMik7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigiU2hvdWxkIGhhdmUgdGhyb3duLCBidXQgZGlkIG5vdCIpOwoJCX0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigiVGhyZXcgZXhjZXB0aW9uIGFzIGV4cGVwY3RlZCIpOwoJCX0KCQlTeXN0ZW0ub3V0LnByaW50bG4ocGFydGl0aW9uKAoJCQlMaXN0Lm9mKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIpLAoJCQkyKSk7CgkJU3lzdGVtLm91dC5wcmludGxuKHBhcnRpdGlvbigKCQkJTGlzdC5vZigxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyKSwKCQkJMykpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihwYXJ0aXRpb24oCgkJCUxpc3Qub2YoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiksCgkJCTQpKTsKCX0KCQoJcHVibGljIHN0YXRpYyBMaXN0PExpc3Q8SW50ZWdlcj4+IHBhcnRpdGlvbigKCQkJTGlzdDxJbnRlZ2VyPiBsaXN0LCAKCQkJaW50IHBhcnRpdGlvblNpemUpIHsKICAgICAgICBpbnQgbGlzdFNpemUgPSBsaXN0LnNpemUoKTsKICAgICAgICBpZiAobGlzdFNpemUgJSBwYXJ0aXRpb25TaXplICE9IDApIHsKCQkJdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVGhlIHNpemUgb2YgdGhlIGxpc3QgbXVzdCBiZSAiCgkJCQkJKyAiZGl2aXNpYmxlIHdpdGhvdXQgcmVtYWluZGVyIGJ5IHRoZSBwYXJ0aXRpb24gc2l6ZS4iKTsKCQl9CiAgICAgICAgZmluYWwgaW50IHBhcnRzID0gbGlzdFNpemUgLyBwYXJ0aXRpb25TaXplOwoJCXJldHVybiBJbnRTdHJlYW0ucmFuZ2UoMCwgcGFydHMpCiAgICAgICAgICAgIC5tYXBUb09iaihpIC0+IGxpc3Quc3ViTGlzdCgyICogaSwgMiAqIGkgKyBwYXJ0aXRpb25TaXplKSkKICAgICAgICAgICAgLmNvbGxlY3QoQ29sbGVjdG9ycy50b0xpc3QoKSk7Cgl9Cn0=
Threw exception as expepcted
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]]
[[1, 2, 3], [3, 4, 5], [5, 6, 7], [7, 8, 9]]
[[1, 2, 3, 4], [3, 4, 5, 6], [5, 6, 7, 8]]