I don't agree with your method of handling 0 or negative partition sizes.
A partition is always meant to be a sub-section of a whole. A partition with size 0 is impossible if the whole is non-empty, as there is no way to cut up a whole into sub-sections of size 0. (Note, an empty whole will of course be divisible into partitions of size 0). The same logic applies for negative values. I would think raising a RuntimeException
such as an IllegalArgumentException
would make more sense in that context. null
objects shouldn't be partition-able either, as they are not even empty "wholes".
Now as for handling sub-section sizes larger than the size of your list, you already define that by having incomplete sub-sections if your sub-section size doesn't divide into your container size. You are missing a test for this, however.
A final remark: since Iterable
isn't confined to Collection
's measly 2 billion item limit for indexing, you might consider using a long
for your partition size if you plan to
use this for large data sets.