如何在遍历Java链表时以恒定时间修改链表中的元素?

如何在遍历Java链表时以恒定时间修改链表中的元素?,java,data-structures,linked-list,Java,Data Structures,Linked List,我试图迭代Java的链表实现,并在固定时间内修改链表的每个元素。我知道链表的set方法,但该操作已启用。因此,如果我在循环中使用set方法,它将在^2上,这不是我想要的。因为我正在遍历链表,所以我已经知道要修改其内容的节点的位置。有没有一种方法可以让我使用Java的链表在固定时间内完成这项工作 我已经用自定义实现多次这样做了,但我没有看到在固定时间内这样做的方法。我试着在下面迭代,但我遗漏了一些东西 LinkedList<String> list = new LinkedList&l

我试图迭代Java的链表实现,并在固定时间内修改链表的每个元素。我知道链表的set方法,但该操作已启用。因此,如果我在循环中使用set方法,它将在^2上,这不是我想要的。因为我正在遍历链表,所以我已经知道要修改其内容的节点的位置。有没有一种方法可以让我使用Java的链表在固定时间内完成这项工作

我已经用自定义实现多次这样做了,但我没有看到在固定时间内这样做的方法。我试着在下面迭代,但我遗漏了一些东西

LinkedList<String> list = new LinkedList<>();
list.add("A");
list.add("B");
list.add("C");
Iterator iterator = list.iterator();

while (iterator.hasNext()) {
    iterator.remove();
    iterator.set(); // using set() wouldn't be O(1)
}
迭代器没有集合方法。幸运的是,您正在使用LinkedList,并且

ListIterator it=list.ListIterator; 当它有下一个{ it.setnew u+it.next; } 迭代器没有集合方法。幸运的是,您正在使用LinkedList,并且

ListIterator it=list.ListIterator; 当它有下一个{ it.setnew u+it.next; }
最佳答案,利用LinkedList的优势。今天似乎没有人知道这到底是什么。在固定时间里,使用SET方法替换Link表中的一个节点的内容,让我们只考虑一次迭代吗?我希望能够使用循环在固定时间内更改链表中每个节点的内容,因此总体上具有时间复杂性。是的,这就是ListIterator的全部要点:它使用LinkedList的优势直接处理列表节点,即在O1时间内,最佳答案。今天似乎没有人知道这到底是什么。在固定时间里,使用SET方法替换Link表中的一个节点的内容,让我们只考虑一次迭代吗?我希望能够使用循环在固定时间内更改链表中每个节点的内容,因此总体上具有时间复杂性。是的,这就是ListIterator的全部要点:它直接处理列表节点,即在O1时间内,@KevinAnderson,我的意思是键入list.set。虽然有一个使用列表迭代器的set方法,但我到目前为止还不知道。@KevinAnderson我的意思是键入list.set。虽然有一个集合方法使用列表迭代器,但我到现在还不知道。