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
ように文書化されています。
信頼性の高いユーザー指定の繰り返し順序を持つ不変、ハッシュベースの地図...