gpt4 book ai didi

java - 如何提高以下java方法从链表中删除元素的性能

转载 作者:行者123 更新时间:2023-12-01 16:34:43 26 4
gpt4 key购买 nike

从链表中删除节点的线程安全方法。

 public void delete(String x, LinkedList<String> list)
{
String lock = "false";
for (int i = 0; i < list.size(); i++) {
synchronized (lock) {
if (list.get(i).equals(x)) {
lock = "true";
list.remove(i);
}
lock = "false";
}
}
}

非常感谢!

编辑:上述方法是线程安全的,但其性能需要提高。这是一个面试问题。

最佳答案

  1. 同步方法本地的对象并没有真正做任何有用的事情。此外,覆盖对同步块(synchronized block)内锁定的对象的引用在目的上是令人困惑的。关于该代码用途的一些解释可能会帮助我们帮助您改进它:)

  2. 实际问题。 get(i)remove(i) 都要求您将列表迭代到位置 i。如果您使用列表的实际迭代器和迭代器的删除方法,则只需迭代整个列表一次。

关于java - 如何提高以下java方法从链表中删除元素的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10488272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com