Проблема в том, что ваш код никогда не сбрасывает MIN
и indice
между итерациями внешнего цикла do
- while
.Поскольку код никогда не обновляет MIN
, вторая итерация непреднамеренно повторно использует старое значение indice
, что в конечном итоге вызывает исключение индекса вне границ в removeElementAt
.
Один из способов исправить это - установить indice
до нуля и от MIN
до myList.get(0)
перед переходом в цикл for
Фактически, вы должны перемещать объявления indice
и MIN
внутри цикла do
- whole
, потому что это их правильная область действия.
Наконец, вам не хватает фигурных скобок вокруг if
'с телом.Это не влияет на функциональность, но приводит к избыточной обработке.
Примечание: Я предполагаю, что вы пишете свой собственный вид в качестве учебного упражнения.В противном случае вам следует использовать функции библиотеки Java или упорядочивать коллекции.