2012-05-15 49 views
1

我想爲單個Long鍵具有不同類型的條目。scala MultiMap入門類型不同的示例

所以給我的1關鍵我想有以下條目:

1,「狗」
1,3

首先是它可能包含的條目String和Int類型,如果是這樣,我可以看到一個帶有MultiMap的HashMap示例,它顯示瞭如何添加條目然後只訪問「dog」條目?

謝謝!

回答

4

如果您希望您的地圖包含兩種類型條目的混合,您可以使用EitherEither就像Option,不同之處在於不是Some而不是None,而是LeftRight

import scala.collection.mutable.HashMap 
import scala.collection.mutable.Set 
import scala.collection.mutable.MultiMap 

val m = new HashMap[Int, Set[Either[Int, String]]] with MultiMap[Int, Either[Int, String]] 

m.addBinding(1, Right("dog")) 
m.addBinding(1, Left(3)) 

m(1).collect{ case Right(s) => s }    // Set(dog) 
m.mapValues(_.collect{ case Right(s) => s }) // Map(1 -> Set(dog)) 
+0

非常酷,謝謝。 –