1. ホーム
  2. java

LinkedHashMapのentrySet()は順序も保証するのか?

2023-09-26 05:25:06

質問

私は誰かがそれにアクセスしようとしたときに順序を保証するためにlinkedHashMapを使用しています。しかし、それを反復するとき、キー/値のペアを返すためにentrySet()を使用して、同様に順序を保証するのでしょうか?反復する間、変更は行われません。

EDITです。 また、マップのキーを反復してgetを呼び出すことによる弊害はないのでしょうか?

どのように解決するのですか?

によると Javadocs によると、そうです。

この実装は HashMap とは異なり、すべてのエントリを実行する二重リンクリストを維持する点です。このリンクリストは反復処理の順序を定義します。これは通常、キーがマップに挿入された順序です ( 挿入順 ).

編集に関しては、いいえ、問題なく動作するはずです。しかし、エントリセットは、反復中にマップのすべてのキーを検索するオーバーヘッドを回避するため、多少速くなります。