2013-05-10 9 views
15

Ich versuche zu verstehen, wann die beiden Datenstrukturen zu verwenden sind. Soweit ich das verstanden habe, ist die PriorityQueue auch als Baum implementiert, da in der Dokumentation angegeben ist, dass die durchschnittliche Zeit für das Einfügen entfernt und enthalten ist O (logn). Der Treeset bietet auch die gleiche Zeitkomplexität. Plus beide sind unsynchronisierte Implementierung. Und ich kann Komparator schreiben, damit sie sich wie Min Heap oder Max Heap verhalten.Unterschied zwischen PriorityQueue und TreeSet in Java?

Kann jemand darauf hinweisen, unter welchen Bedingungen ich diese zwei Sätze verwende.

Danke,

Antwort

21

Wenn Sie eine Warteschlange wollen, eine Priorityqueue verwenden. Wenn Sie ein Set möchten, verwenden Sie ein TreeSet. Ein TreeSet hat einzigartige Elemente und bietet nicht die API einer Warteschlange. Eine Warteschlange bietet nicht die API eines Sets und erlaubt mehrere gleichartige Elemente.

+2

Es gibt kein zwei gleiche Element in einem TreeSet – Sheldon

+0

einfach und elegant! – UCJava

Verwandte Themen