2012-11-05 22 views
15

Guava kütüphanesinde yeniyim, ancak BiMap'in gereksinimlerime iyi uyum sağladığını bulduk. Benim bir sorunum, BiMap'ımdaki değerleri sıralamamız gerektiğidir. Normalde, bir TreeMap'i miras tasnifinden dolayı kullanırdım, ama haritayı, sanki değerlerin birer zorunluluk gibi görünmesi için ters çevirebiliyordum.Guava BiMap'ini Sıralama

Bu konuda uzmanların tavsiyelerini arıyordum. Gördüğüm çözümler: 1. Bir BiMap karşılaştırıcısı oluşturun ve kendi harita sıralama yardımcı programımı kullanın. 2. Kendi 'BiTreeMap' veri yapısını oluştur.

Değerlendirmediğim bir çözüm var mı? Bunu kaçırdığım bir 'Guava yolu' var mı? Teşekkürler!

cevap

20

Şu anda sıralı bir BiMap türüne sahip değiliz, çünkü nasıl çalıştığını biraz belirsiz: girişler anahtarlara göre sıralanır mı? Değerlere göre? İleri girişler tuşlara göre sıralanır mı, ters girişler ise değerlere göre sıralanır mı? Size anahtarları göre sıralı BiMap verecekti bu yüzden ImmutableBiMap.copyOf(Maps.newTreeMap(map)) -

Şimdilik yalnızca gerçek mevcut alternatif içeri girdiler koymak sipariş koruyan, ImmutableBiMap olduğunu.

(Biz daha ciddi olsa, kendi kullanım durumuna daha fazla ayrıntı içeren bir özellik talep etti eğer bir direkt BiMap sıralanmış sağlayan düşünebilirsiniz.) Cevap

+0

Teşekkür! Bir TreeMap'ten türetilen ImmutableBiMap'in üsleri yeterince kapsayacağını düşünüyorum. Bunu nadiren yapmam gerekiyor ve harita her zaman küçük olacak, bu yüzden bir performans sorunu olmayacak. Bu arada koca kıç kütüphanesi. – Cody