2016-12-12 5 views
-2

マップが与えられた場合、Guavaを使用して不変のマップを作成するにはどうすればよいですか?私はCollections.unmodifiableMapを通って1つの方法を知っていますが、Guavaを使用して他の方法がありますか?Guavaを使ってマップを与えられた不変のマップを作る方法は?

Map<String, String> realMap = Maps.newHashMap(); 
realMap.put("A", "B"); 

// any other alternative? 
Map<String, String> unmodifiableMap = Collections.unmodifiableMap(realMap); 

私はいくつかのエントリと私のrealMapを移入していますし、私は誰もがそれを変更できないように、それは不変にする必要があります。私はグアバを使って何か別の選択肢があるかどうか確認しようとしていますか?私はいくつかの検索をしましたが、私はそれを見つけることができません。

+0

本当に?それはインターネット上の研究の約1秒です! –

答えて

3

あなたはImmutableMap.copyOf()を探しています:

ImmutableMap<String, String> immutableMap = ImmutableMap.copyOf(realMap); 

unmodifiableMap()とは対照的に、新しいマップに、これは実際にそれをコピーし、唯一の引数にラッパーを作成する、ということを覚えておいてください。これはわずかなパフォーマンスの低下を意味しますが、それはまた、誤ってマップがrealMapによって変更される可能性がないことを意味します。

関連する問題