1
即時尋找一個隊列,不允許重複的元素(舊的重複元素總是被刪除,並在隊列的末尾是一個新的元素添加一個新的元素)。並且是線程安全的。一個線程正在向隊列添加元素,另一個線程正在讀取和刪除元素。 在標準java庫或者在guava/apache中有用嗎?Java隊列和線程安全
即時尋找一個隊列,不允許重複的元素(舊的重複元素總是被刪除,並在隊列的末尾是一個新的元素添加一個新的元素)。並且是線程安全的。一個線程正在向隊列添加元素,另一個線程正在讀取和刪除元素。 在標準java庫或者在guava/apache中有用嗎?Java隊列和線程安全
您可以使用,例如,番石榴的Forwarding{,Blocking}{Queue,Deque}
。
然後你會做什麼也有一個HashSet
作爲你的實施的一部分,你會嘗試和.add()
新元素;如果.add()
返回false,則不要添加到委託。
而且,當你從隊列中刪除元素時,不要忘記從集合中刪除.remove()
!
(這個假設,通過「複製」在這裏,你的意思是「是.equals()」;如果在另一方面,你使用PriorityQueue
你想使用TreeSet
代替)
你說的是JMS隊列? –
「不允許重複的元素」< - 根據什麼標準? equals和hashCode? – fge