私はコードの下に使用して重複しないリストを作成したいのですが、何かが間違っている、誰かがそれはスレッド安全ではないと言うが、私はそう私にそれを証明するためにいくつかの例を与えてください、それを得ることはありません、おかげ重複しないリストを作成するには?
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;
}
}
「複製されていないリスト」とは何ですか? 「何か間違っている」とは何ですか?期待される、実際の行動は何ですか? –
なぜ 'Set'を使わないのですか?より具体的には 'LinkedHashSet'(挿入順序を維持したい場合)ですか?それ@anacron – anacron
は、問題がどこにあるか私は理解していないため –