Я не знаю диапазоны значений в моем ArrayList, они могут быть в диапазоне 1-30 или 1-200, но я хочу разбить его, например, на 10 групп.
Чтобы узнать размеры групп, вы берете максимальное значение (последнее значение с момента сортировки массива) минус минимальное значение (первое значение) и делите его на количество групп, которое вы хотите (и округлите его). до ближайшего целого числа).
Итак, в вашем примере, если у вас есть список в диапазоне от 1 до 30 и вы хотите получить его в 10 группах, у вас будет размер группы
N = ceil((30 - 1) / 10) = 3
Точно так же, если бы список составлял 1-200, вы бы получили
N = ceil((200 - 1) / 10) = 20
Затем вы вычисляете i : th-группу, считая от 0, как N & times; i - (N + 1) & times; i-1
Чтобы фактически получить списки для этих групп, вы шагаете по списку, ищите «границы» и разбиваете список, используя ArrayList.sublist(start, end)
.