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. –
- 1. Python'un değişmez bir listesi var mı?
- 2. HTML belgelerini DOM yapısına göre karşılaştırabilen araçlar var mı?
- 3. Gerçekten bir MainWindow.xib dosyasına ihtiyacım var mı?
- 4. "Base :: *; kullanma" gibi bir şeye ihtiyacım var
- 5. iPhone uygulamamda bir EULA'ya ihtiyacım var mı?
- 6. iframe'leri kullanmayan bir metin düzenleyicisine ihtiyacım var
- 7. Word'e dışa aktaracağım bir wiki'ye ihtiyacım var
- 8. Ekleme sırasını temel alarak yineleme hash?
- 9. Kaç tane aktiviteye ihtiyacım var?
- 10. Soket programına ihtiyacım var mı?
- 11. Gerçekten libgcc'e ihtiyacım var mı?
- 12. AngularJS - $ kapsamına ihtiyacım var. $ Http
- 13. sysobjects.xtype açıklamalarının listesini tutan bir tablo var mı?
- 14. Ben önceden tanımlanmış veri yapısına sahip bir nesne var
- 15. aşağıdaki dosya yapısına sahip bir meteor proje var
- 16. Yerel bir dalın değişmez hale getirilmesinin bir yolu var mı?
- 17. bir JTable hücresine bir fare dinleyicisi ekleme onay kutusu olarak işlenen bir Boolean değeri tutan
- 18. Bir divanın içindeki bir düğmeye erişmeye ihtiyacım var
- 19. Bir vaka ifadesinde başka bir maddeye ihtiyacım var mı?
- 20. Öğe çerçevesindeki değişmez varlıklarla eşlenmenin bir yolu var mı?
- 21. Json.Net serileştirme yöntemini değişmez sınıflarla kullanmanın bir yolu var mı?
- 22. Scala'da sürekli olarak değişmez bir öncelik sırası var mı?
- 23. 100+ MB test görüntüsüne ihtiyacım var
- 24. Docker sürüsüne gerçekten ihtiyacım var mı?
- 25. Diziden önce neden yıldıza ihtiyacım var?
- 26. En Kısa Levenshtein Mesafesi? İhtiyacım var mı?
- 27. Javascript görseli yükleme, gömme ihtiyacım var
- 28. Graphql ile mongoose'a ihtiyacım var mı?
- 29. Anahtar Bildirimi ayarlarında yardıma ihtiyacım var
- 30. Puan attı puan kazandıktan yardıma ihtiyacım var
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