2013-05-10 17 views
15

Sto cercando di capire quando utilizzare le due strutture dati. Per quanto ho capito, PriorityQueue è implementato anche come albero, in quanto la documentazione indica che il tempo medio per l'inserimento rimuovere e contiene è O (logn). Anche la struttura degli alberi offre la stessa complessità temporale. Inoltre, entrambi sono un'implementazione non sincronizzata. E posso scrivere un comparatore per comportarsi come un heap minimo o un heap massimo.Differenza tra PriorityQueue e TreeSet in Java?

Qualcuno può indicare in quali condizioni utilizzo questi due set.

Grazie,

risposta

21

Quando si desidera una coda, utilizzare un CodaConPriorita. Quando vuoi un Set, usa un TreeSet. Un TreeSet ha elementi univoci e non offre l'API di una coda. Una coda non offre l'API di un set e consente più elementi uguali.

+2

non esiste uno stesso elemento in un TreeSet – Sheldon

+0

semplice ed elegante! – UCJava

Problemi correlati