24

キューの順序を維持しながらaQueueを aに変換する最速の方法は何ですか?List

4

6 に答える 6

31

最も速いのは、List または Queue として使用できる LinkedList を最初に使用することです。

Queue q = new LinkedList();
List l = (List) q;

それ以外の場合は、コピーを取る必要があります

List l = new ArrayList(q);

注: PriorityQueue を扱う場合は、ループを使用し、各要素をポーリングしてリストに追加します。List への PriorityQueue がヒープの順序を維持していません。

于 2012-10-08T10:28:45.567 に答える
12

コンストラクターQueueに渡すArrayList

を作成し、を受け取る ArrayListのコンストラクターで引数としてArrayList渡す最も簡単な方法は、 . Aは であるため、機能します。QueueCollectionQueueCollection

これが最も簡単な方法であり、最速の方法でもあると思います。

List<?> list = new ArrayList<>( myQueue );
于 2013-12-10T13:02:14.037 に答える
3
Queue queue = new LinkedList();
...
List list = new ArrayList(queue);
于 2012-10-08T10:28:15.503 に答える
1

グーグル:

Queue fruitsQueue = new LinkedList();
fruitsQueue.add("Apples");
fruitsQueue.add("Bananas");
fruitsQueue.add("Oranges");
fruitsQueue.add("Grapes");

List fruitsList = new ArrayList(fruitsQueue);
于 2012-10-08T10:29:18.420 に答える