Узел Java LinkedList с добавлением и удалением

#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());
      }
   }