文章详情页
java - 构建一个不重复的List集合,这个代码有什么问题?
浏览:67日期:2023-11-06 16:49:17
问题描述
希望实现的功能是为List提供一个原子操作:若没有则添加。因为ArrayList本身不是线程安全的,所以通过集合Collections.synchronizedList将其转换为一个线程安全的类,然后通过一个辅助的方法来为List实现这么个功能。
class BadListHelper <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; } }
这个代码是线程不安全的吗?如果是,可以证明一下吗?谢谢
问题解答
回答1:用ConcurrentSkipListSet不就行了
回答2:不重复的List,不就是个Set?,需要原子,不就是线程安全的Set?
标签:
java
排行榜
