どの Java コレクション型が最も高速にトラバースされるのか疑問に思っていました。私が最も興味を持っているコレクションは...
- 配列
- リンクされたリスト
- 列
- PriorityLinkedList
- ハッシュマップ
どの Java コレクション型が最も高速にトラバースされるのか疑問に思っていました。私が最も興味を持っているコレクションは...
実際に Collection インターフェースの具体的なクラスの中では、配列を介してトラバースが高速になります。ご存知のように、要素のインデックスでトラバースするためです。インデックス パターンに従うため、インデックスをトラバースすると、トラバースが高速になります。なぜ他の人はいないのですか?一つ一つ説明していきます..
1. LinkedList : LinkedList は挿入順序に従います。データをトラバースして要素を検索すると、すべての要素が最初から検索されます。そのため、トラバースが遅くなります。
2. Queue : LinkedList と PriorityQueue は Queue の 2 つの具体的なクラスです。プライオリティ キューの要素は、使用されるコンストラクターに応じて、自然な順序付けに従って、またはキューの構築時に提供される Comparator によって並べ替えられます。特定の順序でプライオリティ キューの要素をトラバースすることは保証されていません。順序付けられたトラバーサル、Arrays.sort(pq.toArray()) の使用を検討してください。したがって、明示的にソートせずにトラバースすると、提供されたトラバースには役に立たなくなります。
3. HashMap : Collection の代わりに Map を使用する場合、キー要素のハッシュコードで機能するため、トラバースはここでは保証されません。したがって、ここでもトラバースは役に立たなくなります。要素のキー値を指定することで、要素を直接検索できます。
4. PriorityLinkedList : このクラスは Java API には存在しません。