1. ホーム
  2. java

[解決済み] Java LinkedHashMap の最初か最後のエントリを取得する

2022-04-25 20:36:35

質問

私は LinkedHashMap というのも、マップに入力されるキーの順番が重要だからです。

しかし、今私は、最初の場所(最初に入力されたエントリ)または最後のキーの値を取得したい。

のようなメソッドが必要です。 first()last() といった感じでしょうか?

最初のキー項目を取得するだけのイテレータが必要なのでしょうか?というわけで、私は LinkedHashMap !

ありがとうございます。

解決方法は?

のセマンティクスは LinkedHashMap はMapのものであり、むしろ LinkedList . 挿入順序は保持されますが、これは実装の詳細であり、インターフェースの一面ではありません。

最初のエントリを取得する最も手っ取り早い方法は、やはり entrySet().iterator().next() . 最後のエントリを取得することも可能ですが、その場合、エントリセット全体に対して .next() に到達するまで。 while (iterator.hasNext()) { lastElement = iterator.next() }

編集 : ただし、JavaSEのAPIを超えるなら。 アパッチ・コモンズ・コレクション は、独自の LinkedMap のようなメソッドを持つ実装があります。 firstKey lastKey これらは、あなたが探しているものを実現するものです。インターフェイスはかなりリッチになりました。