2014-04-13 4 views
1

중복 요소를 허용하지 않는 큐를 찾고 있습니다 (이전 중복 요소는 항상 제거되고 큐 끝에는 새로운 요소가 추가됨). 스레드로부터 안전합니다. 하나의 스레드는 큐에 요소를 추가하고 두 번째 스레드는 요소를 읽고 제거합니다. standart java 라이브러리 또는 guava/apache에서 유용한 것이 있습니까?Java 대기열 및 스레드 안전

+0

당신은 JMS 큐에 대해 얘기 ? –

+0

"중복 요소를 허용하지 않습니다"<- 어떤 기준에 따라? 같음 및 hashCode? – fge

답변

2

예를 들어 구아바의 Forwarding{,Blocking}{Queue,Deque}을 사용할 수 있습니다.

그러면 사용자가 수행 할 구현의 일부로 HashSet을 사용하고 새로운 요소 인 .add()을 시도해보십시오. .add()이 false를 반환하면 위임자에 추가하지 마십시오.

물론 큐에서 요소를 제거 할 때 세트에서 .remove()을 잊지 마세요!

(이 여기에 "복제"에 의해 당신이 의미하는 것을 예로 ".equals은()이다", 다른 한편으로 사용하는 경우 PriorityQueue 사용하려는 것 TreeSet 대신)