問題タブ [arraydeque]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - ArrayDeque はスタックよりもどのように高速ですか?
javadocによると、
ArrayDeque クラスは、スタックとして使用すると Stack よりも高速になる可能性があります
ArrayDeque がスタックよりも高速になる方法がわかりません。次のように、リンクリストを使用してスタックが実装されているとします。
多数の要素の場合、ArrayDeque のサイズを変更するためのオーバーヘッドが発生しますが、これは LinkedList を使用して実装された Stack には当てはまりません。では、ArrayDeque はスタックよりも正確にどの程度高速なのでしょうか?
java - Java配列両端キューのサイズとパフォーマンス
私の Java コードでは、java.util.ArrayDeque のサイズがパフォーマンスに影響していると思われますが、その可能性があるかどうかをここで確認したかったのです。
私のコードでは、deque が空でない場合は軌跡オブジェクトを削除し、40 個のシミュレーションが同時に実行されるまで新しいスレッドでシミュレーションを開始します。各シミュレーションの最後に、さらに軌道をキューに追加する可能性があります。すべてのシミュレーションが終了した後もキューに軌道が残っている場合は、プロセスが繰り返されます。
私が使用する操作は、 remove() 、 add() 、 isEmpty() であり、別のクラスから Deque を取得することもできます。各反復のタイミングを計っているうちに、Deque サイズが 4421 オブジェクトの場合、7756 ミリ秒かかることがわかりました。一方、Deque サイズが 103 オブジェクトの場合、43 ミリ秒かかります。
java - スタックを実装するための ArrayDeque と ArrayList
のドキュメントにArrayDeque
は次のように書かれています:
このクラスは、スタックとして使用すると Stack よりも高速になり、キューとして使用すると LinkedList よりも高速になる可能性があります。
ArrayDeque
をスタックとして使用する場合と を使用する場合の違いについては言及されていませんArrayList
。ArrayList
次のようにスタックとして使用できます。
ArrayList
をこの方法でのみ使用すると、 のパフォーマンスが よりも悪いことがわかりましたArrayDeque
。この違いの原因は何ですか?確かに、それはsize()
?への呼び出しだけではありません。内部的には、ArrayList
との両方ArrayDeque
が必要に応じてより大きな配列に置き換えられる を使用して実装されているObject[]
ため、パフォーマンスはほぼ同じであるはずです。
java - ArrayDeque にオブジェクトを追加するときに NullPointerException が発生しました
このクラスは、部屋番号 (つまり、ホテルのゲストが滞在した部屋) のスタックを保持し、最後に滞在した部屋 (LIFO) を取得できるようにすることを目的としています。
今のところ、アイテムを追加したいだけですが、うまくいかないようです。これにはスタックを使用できますが、ArrayDeque を試しています (より柔軟になるはずなので?)。
とにかく、パラメーターとして整数を提供する addRoom() メソッドを実行すると、ArrayDeque のaddFirst()またはadd()メソッドを使用する 14 行目で ArrayDeque が NullPointerException をスローします。
整数値を明示的に指定すると、整数が null であると不平を言う方法がわかりません。手伝ってください。
c++ - deque-array c++ を返す
c++でdeque配列を返すにはどうすればよいですか?
//もちろん、関数を実装するときにエラーが発生します-しかし、括弧はどこに置くべきですか?
java - JavaでのArrayDequeの実装について
ドキュメントには次のように記載されています。
Deque インターフェイスのサイズ変更可能な配列の実装。配列両端キューには容量制限がありません。使用をサポートするために必要に応じて成長します
ただし、 ArrayDeque の構造が正確に何であるか、サイズ変更がどのように機能するかを理解したいと思っています。また、誰かが私が答えを見つけることができる信頼できる情報源を提供できれば素晴らしいことです. 私が見つけたいくつかの Google の結果によると、それはおそらく循環配列として実装されています。本当ですか?成長ポリシーとは何ですか?ArrayList に似ていますか? もしそうなら、ArrayDeque は、最後に要素を追加または削除するような操作で ArrayList と同様のパフォーマンスを持っていますか?
ありがとうございました。