Map.of工場で挿入の順序を保持するには?

membersound:

9つの申し出JavaはMap.of()簡単に固定値を持つマップを作成しています。

問題:私は次のように挿入の順序を保持するマップを作成しますLinkedHashMapそれは、その工場では可能ですか?少なくとも、map.of()順序をpreservていません...

ユージン:

そこのようなファクトリメソッドではありませんLinkedHashMap::of実際には、とMap私はそれを参照してください唯一の方法は、構築することですので、それ自体は順序を持っていないLinkedHashMapあなたが本当に1を必要に応じて。

ところでからJEP自体

具体的なコレクションクラス(例えば、ArrayListを、HashSetの)上のstaticファクトリメソッドがこの提案から削除されました...

クラスの静的メソッドは、サブクラスによって継承されていることである別のしわは、あります。静的ファクトリメソッドHashMap.ofは(追加するあった)と仮定する。LinkedHashMapは、ハッシュマップのサブクラスであるので、LinkedHashMap.of()を呼び出すために、アプリケーション・コードは可能であろう。これは、1つが期待するものではありませんすべてのHashMap.ofを()、呼び出し元に終わるだろう!

ここでのポイントは、ということであるstaticためにこのような方法が追加されているならば方法は、このように、継承されたが、オーバーライドされていないHashMapそれがでオーバーライドされていませんでしたLinkedHashMap

あなたが使用できる場合はguava、あなたが使用できるImmutableMapように文書化されています。

信頼性の高いユーザー指定の繰り返し順序を持つ不変、ハッシュベースの地図...

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=168648&siteId=1