【发布时间】:2017-05-01 01:32:59
【问题描述】:
public class ListHelper<E> {
public List<E> list =
Collections.synchronizedList(new ArrayList<E>());
...
public synchronized boolean putIfAbsent(E x) {
boolean absent = !list.contains(x);
if (absent)
list.add(x);
return absent;
}
}
我不明白为什么这不起作用。
如果我将列表更改为私有字段,这段代码不正确吗?
【问题讨论】:
-
我不知道你想在那里实现什么以及为什么什么都不起作用,但看起来你正在模仿
Set并且可能想在List上使用它。
标签: java multithreading locking