24

ImmutableLinkedHashMap<>Guava ライブラリのようなものを見つけたいです。挿入オーダーで不変のキー値データ構造を使用する必要があります。それで、私は何を使うべきですか?

4

2 に答える 2

32

あなたが求めているものを正確に理解しているかどうかはわかりませんが、それが本当に immutableMapである場合は、見たいと思うかもしれませんImmutableMap

ドキュメントで述べたように:

Map信頼できるユーザー指定の反復順序を持つ不変のハッシュベース。null キーまたは値を許可しません。

変更可能な別のマップのビューである とは異なりCollections.unmodifiableMap(java.util.Map<? extends K, ? extends V>)、 のインスタンスにImmutableMapは独自のデータが含まれており、変更されることはありません。ImmutableMapマップ (「定数マップ」) に便利でpublic static final、呼び出し元によってクラスに提供されたマップの「防御コピー」を簡単に作成することもできます

たとえば、同様の方法で使用できます。

Map<Integer, String> m = ImmutableMap.of(5,"Five",6,"Six",7,"Seven");

これがあなたが求めていたものであることを願っています。

于 2013-02-20T15:00:03.773 に答える
10

最初に を作成しLinkedHashMap、次に を使用ImmutableMap.copyOf(linkedHashMap)して、元のマップと同じ順序を持つ不変のコピーを作成します。

于 2013-02-20T15:00:28.110 に答える