2012-01-14 27 views
17

Multiset anlayışım, frekanslı bir settir, fakat her zaman, sıklığı göstermek için Map'i kullanabilirim, Multiset'i kullanmanın başka bir nedeni var mı? Bir Multiset<E>Map<E, Integer> bir aşkınGuava MultiSet vs Map?

cevap

31

Avantajları:

  • koleksiyonunda zaten olmayan bir eleman eklerken gereken özel kodu. şirketinden elemanların sayısı işlemek için
  • Yöntem: count(E), add(E, int) vb
  • kod amacı nettir. Multiset<E>, öğeleri açıkça sayılarına göre eşler. Bir Map<E, Integer>, öğeleri rasgele tam sayılarla eşleyebilir.

Ayrıca bakınız: Bana göre

Multiset Javadoc

Multiset explained in the Guava Wiki

+5

Muhtemelen uygulamanızdan daha verimli olmanın yanı sıra, Multiset aslında yapmaya çalıştığınız şeyi daha net hale getirir ve daha da zorlaşır. Tipik olarak, bir Harita ile, bir çok şeyle uğraşmaktasınız: anahtarın haritada zaten olup olmadığını, sıfırı saymakla uğraştığını ve her türlü zor işin olup olmadığını kontrol edersiniz. Multiset sadece çalışır. –

8

, bir Map dışında Multiset setleri en önemli nokta bu Collection olmasıdır: sadece içine şeyler koymak ve Daha sonra sayımlar alabilirsiniz. Kavramsal olarak, Map'un tasarlanmadığı kullanım durumlarına uyar. Bu kullanım durumları için, bir Map, Java'nın daha uygun bir şey sağlamasından ötürü kinda-sorta'nın işe yaramadığı bir kandır.

İlgili konular