您的位置:首頁技術文章
文章詳情頁

java - 構建一個不重復的List集合,這個代碼有什么問題?

瀏覽:63日期: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
国产综合久久一区二区三区