Qual è il modo più veloce per convertire uno Queue
in un mantenendo l'ordine della coda?Convertire una coda in elenco
risposta
Il più veloce è utilizzare un LinkedList in primo luogo che può essere utilizzato come elenco o coda.
Queue q = new LinkedList();
List l = (List) q;
In caso contrario è necessario prendere una copia
List l = new ArrayList(q);
Queue queue = new LinkedList();
...
List list = new ArrayList(queue);
Google:
Queue fruitsQueue = new LinkedList();
fruitsQueue.add("Apples");
fruitsQueue.add("Bananas");
fruitsQueue.add("Oranges");
fruitsQueue.add("Grapes");
List fruitsList = new ArrayList(fruitsQueue);
Passo Queue
Per ArrayList
Constructor
Il modo più semplice per creare un semplice ArrayList
e superare il tuo Queue
come argomento in il constructor di ArrayList che prende uno Collection
. A Queue
è un Collection
, quindi funziona.
Questo è il modo più semplice e credo modo più veloce troppo.
List<?> list = new ArrayList<>(myQueue);
Dovrebbe essere la risposta accettata, è l'unico a rivolgersi direttamente alla domanda. La domanda si riferiva all'interfaccia ['Queue'] (http://docs.oracle.com/javase/8/docs/api/java/util/Queue.html). Esistono molte implementazioni di Queue, entrambe in bundle con Java e trovate in altre librerie come [Google Guava] (https://github.com/google/guava). Le altre risposte si riferiscono solo a ['LinkedList'] (http://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html) che è solo una delle molte implementazioni. –
'q.poll(), list.add()'? – Nishant