[SCALA] 순서의 서열의 내용에 관계없이 비교하는 API 방법이 있습니까?
SCALA순서의 서열의 내용에 관계없이 비교하는 API 방법이 있습니까?
가정 :
val l1 = List(1,2,3)
val l2 = List(2,3,1)
I는 방법을 원하는 L1이 L2에 (동일 내용이지만 다른 순서에서와 같이) 동일한 것을 확인한다. 이 작업을 수행하는 목록 / 서열에 API 방법이 있습니까?
l1.sameElements(l2)
이뿐만 아니라 순서를 확인하는대로 작동하지 않습니다.
나는 다음을 마련했습니다 :
l1.foldLeft(l1.size == l2.size)(_ && l2.contains(_))
거기에 아무것도 위의이 비교를하는 것보다 더 간결인가?
해결법
-
==============================
1.당신이 원하는 것은이 "이 목록에 상관없이 주문이나 반복 같은 요소를 포함"
당신이 원하는 것은이 "이 목록에 상관없이 주문이나 반복 같은 요소를 포함"
l1.toSet == l2.toSet
당신이 원하는 것은이 "이 목록은 같은 요소를 포함하고, 각각의 반복의 동일한 번호로"
l1.sorted == l2.sorted
당신이 원하는 것은이 "이 목록은 같은 요소를 포함하고 같은 크기지만, 두 목록 사이에 다를 수 있습니다 주어진 요소의 반복 횟수입니다"
l1.size == l2.size && l1.toSet == l2.toSet
-
==============================
2.동안
동안
l1.sorted == l2.sorted
올, 그것의 런타임 성능 때문에 정렬 (N, N 로그) O이다. 큰 목록의 경우와 아마 더 나은
l1.groupBy(identity) == l2.groupBy(identity)
이는 GROUPBY의 알맞은 구현을 가정하면, O (N)를해야한다.
from https://stackoverflow.com/questions/3622895/is-there-an-api-method-that-compares-contents-of-a-seq-irrespective-of-order by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 스파크 2.X와 스칼라 2.12를 사용하여 (0) | 2019.11.21 |
---|---|
[SCALA] 스칼라에서 가변 길이 인수 목록의 유형은 무엇입니까? (0) | 2019.11.21 |
[SCALA] 그것은 스칼라에서 자바 8 스타일의 방법 참조를 사용할 수 있습니까? (0) | 2019.11.21 |
[SCALA] scala.collection.Seq <문자열>에서 변환 된 java.util.List <문자열> 자바 코드에서 (0) | 2019.11.21 |
[SCALA] 어떻게 스칼라의 범위에서 할 수있는 I 패턴 일치? (0) | 2019.11.21 |