Guava kütüphanesinde ImmutableLinkedHashMap<>
gibi bir şey bulmak istiyorum. Ekleme siparişi ile değişmez bir anahtar-değer veri yapısı kullanmam gerekiyor. Peki, ne kullanmalıyım?Ekleme sırasını tutan değişmez bir anahtar-değer yapısına ihtiyacım var
cevap
ben sonra ne tam olarak anlamak ediyorum emin değilim ama Map
gerçekten değişmez ise, dokümanın belirtildiği gibi ImmutableMap
bakmak istiyorum mght:
An kullanıcı tarafından belirlenen yineleme sıralamasıyla, değişmez, karma tabanlı
Map
. Boş anahtarlara veya değerlere izin vermez. ,ImmutableMap
örneğinin kendi verilerini içerdiği ve hiçbir zaman değişmeyeceğiCollections.unmodifiableMap(java.util.Map<? extends K, ? extends V>)
'dan farklı olarak, yine de değişebilen ayrı bir haritanın görünümüdür.ImmutableMap
public static final
haritalar ("sabit haritalar") için uygundur ve ayrıca benzer bir şekilde kullanabiliriz, kolayca bir arayan
Örneğin sınıfınızda sağlanan bir haritanın bir "savunma kopya" yapalım:
Map<Integer, String> m = ImmutableMap.of(5,"Five",6,"Six",7,"Seven");
Umut ettikten sonra budur.
Evet, sadece bunu da söyleyecektim. “ImmutableMap” çalışması gerektiği gibi görünüyor. – 808sound
Buradaki sorun, 'ImmutableSortedMap' 'ImmutableMap' öğesini genişletmesidir, bu nedenle, bu yönteme sahip müşterileriniz varsa, ekleme siparişi bakımını türlere göre zorlayamazsınız. –
İlk önce bir LinkedHashMap
oluşturun ve orijinal haritayla aynı sırada olacak şekilde değiştirilemez bir kopya oluşturmak için ImmutableMap.copyOf(linkedHashMap)
kullanın.
Neden rahatsız oluyorsunuz? 'ImmutableMap' zaten ekleme siparişini kullanıyor. –
Bkz. [Paket com.google.common.collect Açıklama] (http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/package-summary.html#package_description) ve [IautableCollections Guava wiki'de Açıklandı] (https://code.google.com/p/guava-libraries/wiki/ImmutableCollectionsExplained). – Xaerxess
[Google Koleksiyonları ImmutableMap yineleme sırası] 'nın olası kopyası (http://stackoverflow.com/questions/3810738/google-collections-immutablemap-iteration-order) – Barett