SunからLinkedHashMapsのソースコードを見ると、KeyIteratorというプライベートクラスがあることがわかります。これを使用したいと思います。どうすればアクセスできますか?LinkedHashMapのkeyIteratorを取得するにはどうすればよいですか?
答えて
あなたは、あなたもそれが存在を知っている必要はありません
myMap.keySet().iterator();
を呼び出すことによって、それを得ます。実装の成果物に過ぎません。あなたが知っている限り、彼らは飛んでいる猿を使ってキーを反復することができます。彼らが仕様に従って反復されている限り、どのようにそれを行うかは関係ありません。ところで
は、あなたがHashMap
は(ConcurrentHashMap
、ConcurrentSkipListMap
、EnumMap
、IdentityHashMap
、TreeMap
、およびWeakHashMap
がそうであるように)KeyIterator
と呼ばれるプライベートクラスを持っていることをご存知でしたか?
HashMap
のキーを反復処理する方法に違いはありますか?
編集:あなたのコメントへのREPONSEで、あなたがMap
内のすべてのキーと値のペアを反復処理しようとしている場合は、キーを反復処理し、呼び出すより良い方法があることに注意してくださいそれぞれについてget
entrySet()
メソッドはすべてのキーと値のペアのうちSet
を取得します。だからではなく、執筆:
for (Key key : myMap.keySet()) {
Value val = myMap.get(key);
...
}
あなたが書く必要があります:あなたがしたい場合
for (Map.Entry<Key, Value> entry : myMap.entrySet()) {
doSomethingWithKey(entry.getKey());
doSomethingWithValue(entry.getValue());
...
}
またvalues()
で値を反復処理することができます。 keySet
、entrySet
、およびvalues
がMap
interfaceで定義されているので、彼らは任意のMap
だけでなく、LinkedHashMap
のために働くことを
は注意してください。
LinkedHashMapの内部実装の一部として定義されている(つまり、ソースコード内では定義されていますが、APIでは定義されていない)ものは使用しないでください。次のリリースで内部実装が変更された場合はどうなりますか?それを使用しているすべてのコードが壊れます。
あなたはAPIにコーディングし
myMap.keySet().iterator()
あなたはそれを直接使用することはできませんので、それは、プライベートクラスのような何かを行う必要があります。
private class KeyIterator extends LinkedHashIterator<K> {
通常のイテレータを使用すると、そのインスタンスが返されます。
myMap.keySet().iterator()
- 1. ウェブサイトのアイコンを取得するにはどうすればよいですか?
- 2. オーバーレイオブジェクトのイベントハンドラを取得するにはどうすればよいですか?
- 3. s3のレイテンシービューを取得するにはどうすればよいですか?
- 4. リダイレクトページのページコンテンツを取得するにはどうすればよいですか?
- 5. チェックインコードのみを取得するにはどうすればよいですか?
- 6. VS.Phpのカラーオプションを取得するにはどうすればよいですか?
- 7. webpackのライブリロードを取得するにはどうすればよいですか?
- 8. modelmetadataのモデルを取得するにはどうすればよいですか?
- 9. リストのアドレスを取得するにはどうすればよいですか?
- 10. デスクトップウィンドウのハンドルを取得するにはどうすればよいですか?
- 11. ツイートのURLを取得するにはどうすればよいですか?
- 12. ユーザーグループのスピーカーを取得するにはどうすればよいですか?
- 13. このボタンレイアウトを取得するにはどうすればよいですか?
- 14. nightwatchjsのスクリーンショットを取得するにはどうすればよいですか?
- 15. StackExchange.Redisのキーカウントを取得するにはどうすればよいですか?
- 16. モバイルネットワークのステータスを取得するにはどうすればよいですか?
- 17. カスタムオープングラフオブジェクトのカスタムプロパティを取得するにはどうすればよいですか?
- 18. iframeのソースを取得するにはどうすればよいですか?
- 19. DynamicControlの値を取得するにはどうすればよいですか?
- 20. コンパニオンオブジェクトのScalaSigを取得するにはどうすればよいですか?
- 21. Java:org.w3c.dom.Nodeのxpathを取得するにはどうすればよいですか?
- 22. モデルフォームボタンのクリックイベントを取得するにはどうすればよいですか?
- 23. テンプレートテンプレートパラメータのテンプレートパラメータを取得するにはどうすればよいですか?
- 24. テキストの色を取得するにはどうすればよいですか?
- 25. エアフローダグのJobIDを取得するにはどうすればよいですか?
- 26. ネットワークアプリケーションのライセンスを取得するにはどうすればよいですか?
- 27. モバイルデバイスユーザーのフルネームを取得するにはどうすればよいですか?
- 28. DbSetのプライマリキーを取得するにはどうすればよいですか?
- 29. LinkedHashMapをvalueクラスのフィールドでソートするにはどうすればよいですか?
- 30. LinkedHashMapのキーをJListに追加するにはどうすればよいですか?
内部プライベートクラスが見えるまで、LinkedHashMapで繰り返し処理できることはありませんでした。しかし、答えをありがとう。 –
私はentrySet()の使用方法がわかりませんでした。しかし、そのほとんどすべての場所で私はハッシュマップを使用して本当に便利です。 ありがとう@Michael – sravanreddy001