2014-11-17 2 views
1

안녕 내 스칼라 목록은 다음과 같은 요소 스칼라 목록

val myList = List(List("A","B","C","E"),List("A","A1","B1","C","E"),List("P","E","L","A")) 

지금은 나의 최종 목록이 될 것입니다 목록 위에서 고유 요소를 찾으려을 포함 별개의 요소를 찾을 수

val finalList = List ("A","E") 

방법 이게 스칼라에서 발견 되니? 모든 내부 목록 사이

+3

나는 "고유 요소"를 호출하지 것이다. 모든 목록에 나타나는 요소를 의미합니다. –

+1

@ Paul 당신은 모든 목록에서 일반적인 요소를 찾고 싶지만 뚜렷한 실수로 입력했습니다. – Yogesh

답변

10

찾기 교차 :

myList.reduceLeft(_.intersect(_)) // List[String] = List(A, E) 
+0

잘 작동하지만, 어떻게하면이 문제를 해결할 수 있을지 조금 이나마 설명해 주시겠습니까? 아니면 reduceRight를 사용할 수 있습니까? – Yogesh

+0

@yogesh 질문에 대해서는'reduceLeft'와'reduceRight' 사이에는 차이가 없습니다. 첫 번째 반복은 list의 첫 번째 요소와 두 번째 요소 사이의 교차점을 찾습니다. 다음 반복은 이전 결과와 다음 요소 사이의 교차점을 찾습니다. 등등. –

+1

reduceLeft (또는 reduceRight)는 A => A => A 형식의 2 진 함수를 기본 Traversable에 첫 번째 요소부터 적용합니다. 예 : 목록 (1,2,3,4) .reduceLeft (_ + _) == 목록 (1 + 2,3,4) .reduceLeft (...) == 목록 (1 + 2 + 3,4) .reduceLeft (...) == 목록 (1 + 2 + 3 + 4). ReduceRight는 다른 방향으로 진행됩니다. – ponythewhite