El método de guayaba, Lists#partition
, particiones una List<?>
en una List<List<?>>
, donde cada partición contiene N
elementos (como se especifica por los segundos parámetros de la función, y excluyendo la última partición).
¿Es posible utilizar este método, pero crear N
particiones en su lugar?
Si no es así, ¿cuáles son algunas maneras de ir sobre él?
He intentado crear 31
particiones con la siguiente ( keys
es una List<String>
de tamaño 57
), pero sólo se crea 29
:
List<String> keys = ...;
var paritions = Lists.partition(keys, (int) Math.ceil(keys.size() / 31D));
Para poder crear particiones N, usted tiene que tener un mínimo de 2N elementos. En su caso, usted tiene un requisito de partición 31, lo que significa que se necesitaría 62 elementos.
Debido a que tiene 57 elementos, estás cinco elementos - o particiones dos y medio - por debajo del mínimo requerido, por lo que tienes 29 particiones, con la última partición tener sólo un elemento.
Guayaba está haciendo su trabajo. Usted no tiene suficientes elementos para subdividir correctamente en las particiones que desea.