2014-11-09 4 views
-1

조작하고 싶은 중첩 된지도가 있습니다.중첩 된지도 작업

내 데이터 유형은 다음과 같습니다

nestedMap :SortedMap[Long, SortedMap[String, Double]] 

내가 nestedMap의 인스턴스를 가지고있다.

String의 List/SortedMap (즉, 내부 SortedMap의 키)을 만들고 싶습니다. 예를 들어

:

나는 다음과 같은 목록을 생성 할
val nestedMap: SortedMap[Long, SortedMap[String, Double]] = (1000L -> ("component1" -> 1.), 2000L -> ("component1" -> 1.1), 3000L -> ("component1" -> 0.95, "component2" -> 1.)) 

: 롱 그러나 수를 구성 요소의 수는 수십 요소의 커플이 될 수

component = List("component1", "component2") 

을 더블 요소 수 수천이 되십시오.

가장 효율적인 방법은 무엇입니까?

감사

+0

그것은지도의 크기에 따라 달라집니다. 거대한지도의 경우 빌더 (성능)를 사용하십시오. –

답변

3
scala> nestedMap.values 
       .flatMap(_.keys) 
       .toSet // or .toList.distinct if you want a List[String] 
res3: scala.collection.immutable.Set[String] = Set(component1, component2)