2012-05-15 2 views
1

하나의 긴 키에 대해 다른 유형의 항목을 갖고 싶습니다.항목 유형이 다른 스칼라 MultiMap의 예

나는 하나의 키가 나는 다음과 같은 항목을 가지고 싶습니다 그래서 주어진 :

1, "개"
1, 모든 3

먼저이의 항목을 포함 할 수 있습니다를 String과 Int 타입 모두를 사용할 수 있습니까? 그렇다면, MultiMap과 함께 HashMap 예제를 볼 수 있습니까? 항목을 추가하는 방법을 보여준 다음 "dog"항목에만 액세스 할 수 있습니까?

감사합니다.

답변

4

맵에 두 가지 유형의 항목이 혼합되어 있으면 Either을 사용할 수 있습니다. EitherOption과 같지만, SomeNone 대 너 대신 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

매우 감사합니다. –

관련 문제