My Source LinkedList
имеет 20300 единиц. Мне нужно разбить этот список на подкатегории для каждых 2500 позиций соответственно, а остальные значения (300 в этом случае) должны присутствовать в финале List
.Перерыв LinkedList в несколько списков, основанный на количестве элементов в списке
Пожалуйста, дайте мне знать, как я могу это достичь?
Ниже код работает отлично, за последние 300 значений, за исключением, она бросает ошибка ..
private static List<List<String>> split(LinkedList<String> src, int maxSize){
List<List<String>> splittedList = new ArrayList<List<String>>();
int itemsRemaining = src.size();
int start = 0;
while (itemsRemaining != 0) {
int end = itemsRemaining >= maxSize ? (start + maxSize) : itemsRemaining;
splittedList.add(src.subList(start, end));
int sizeOfFinalList = end - start;
itemsRemaining = itemsRemaining - sizeOfFinalList;
start = start + sizeOfFinalList;
}
return splittedList;
}
Что вы попробовали? – Shamse
Какая ошибка у вас? Каково значение начала и конца в момент получения ошибки? – Freiheit
Ошибка @Freiheit - Исключение в потоке "main" java.lang.IllegalArgumentException: fromIndex (6)> toIndex (2) \t at java.util.SubList. (Неизвестный источник) \t at java.util.AbstractList.subList (Неизвестный источник) –
Mahiz