#java #linked-list #listiterator
#java #связанный список #listiterator
Вопрос:
У меня есть список элементов, и моя программа должна отображать по одному элементу за раз с возможностью перехода пользователя к следующему или предыдущему элементу.
Есть ли в Java класс LinkedListNode или есть библиотека с такой реализацией, чтобы я мог одновременно просматривать список и добавлять или удалять элементы? Я знаю, что в Java есть ListIterator, но я не могу изменить список при его просмотре (возникает исключение ConcurrentModificationException)
Комментарии:
1.
java.util.LinkedList
существует, какjava.util.ListIterator
и . Я не уверен на 100%, можете ли вы добавлять элементы во время итерации, но вы, безусловно, можете удалить их с помощью итераторов. В зависимости от объема того, что вы пытаетесь выполнить, может быть лучше вернуть доступную только для чтения копию списка, который вы хотите показать, и разрешить изменения (сложение, вычитание) в другом месте.2. Это разбивка на страницы в java?
Ответ №1:
Я не думаю, что вы можете удалять или добавлять при использовании итератора, но я думаю, что если вы выполнили итерацию с циклом for, вы сможете использовать этот текущий индекс для удаления или добавления.
Scanner scanner = new Scanner(System.in);
ArrayList<string> theList = new ArrayList<>();
String input = "";
for (int i=0; i<t.size(); i )
{
input = scanner.nextLine();
if (input.equals("1")); //then delete
theList.remove(i);
else if(input.equals("2"))
{
theList.add(i, scanner.nextLine());
}
}