Tag: listiterator

使用Iterator循环时将项添加到HashMap

我有一个使用Iterator遍历HashMap的程序,并且在循环内部,我正在添加HashMap – 这导致了ConcurrentModificationException。 我已经看到ListIterator有一个add()函数来处理这个,但Iterator没有。 HashMap设置如下 – HashMap<Pair, Object> 像这样的迭代器 – Iterator<Entry<Pair, Object>> iter; 使用Object(不是真名)是我程序中的一个类。 在我循环或任何其他选项时,有谁知道如何添加到迭代器?

尝试使用列表迭代器删除对象

我正在尝试使用列表迭代器从列表中删除对象。 我已经浏览了网站上的其他解决方案,没有人减轻错误“线程中的exception”主“java.util.ConcurrentModificationException” 这是我的代码没有执行: void PatronReturn(String bookName) { // get to beginning while(listIterator.hasPrevious()) { listIterator.previous(); } while(listIterator.hasNext()){ Book b = listIterator.next(); if (listIterator.next().getBookTitle().equals(bookName)) { //listIterator.next(); //listIterator.remove(); books.remove(b); //listIterator.next(); //moves to next so iterator can remove previous ? //books.remove(listIterator.next());; // TODO see if this is correct } }

如何使用ListIterator?

我正在使用ArrayList的iterator: List al = new ArrayList(); // —– Logic for adding elements—– Iterator it = al.iterator(); // logic to retrieve elements—- 然后它尝试使用ListIterator,就像这样。 ListIterator li = al.listIterator(); while(li.hasNext()) { System.out.print(li.next()+” “); } 有效 … 我试过这个用于反向检索 ListIterator li = al.listIterator(); while(li.hasPrevious()) { System.out.print(li.previous()+” “); } 但它不起作用。 以下代码正常运行。 ListIterator li = al.listIterator(al.size()); while(li.hasPrevious()) { System.out.println(li.previous()+” “); } 我想知道有一些generics的概念,但不清楚它。 […]

迭代时向元素添加元素。 (Java)

可能重复: Java:在迭代期间向集合添加元素 我的问题是,我想在迭代它时使用新元素扩展一个列表,我希望迭代器继续我刚添加的元素。 根据我的理解, ListIterator.add()在列表中的当前元素之前添加元素,而不是在它之后。 是否有可能以其他方式实现这一目标?