Например, у меня есть список с элементами от 1 до 10, и мне нужно 3 списка. Они должны выглядеть так:
Код: Выделить всё
SL1 -> {1, 2, 3, 4}
SL2 -> {5, 6, 7}
SL3 -> {8, 9, 10}
Я пробовал несколько вещей, включая Iterables.partition но это не поможет.
Единственное, что я придумал, это работает:
Код: Выделить всё
public Iterable distributeEvenlyQueryListIntoLists(final LinkedList bigList, final Integer numberOfSublists) {
List result = new ArrayList();
// Creates as many lists as needed
for (int i = 0; i < numberOfSublists; i++) {
result.add(new ArrayList());
}
while (bigList.iterator().hasNext()) {
for (int i = 0; i < numberOfSublists; i++) {
if (!bigList.iterator().hasNext()) {
break;
}
result.get(i).add(bigList.poll());
}
}
return result;
}
Особенно ненавижу первый цикл, в котором я создаю подсписки.
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/412 ... ts-in-java
Мобильная версия