我尝试遍历java的链表实现,并在固定时间内修改链表的每个元素。我知道链表的set()方法,但是这个操作是o(n)。因此,如果我在循环中使用set()方法,它将是o(n^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)
}
1条答案
按热度按时间wqsoz72f1#
Iterator
没有一个set
方法。幸运的是,你和一个LinkedList
,和ListIterator
有一个set
方法。