加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 有没有API方法来比较Seq的内容,而不管顺序?

发布时间:2020-12-16 09:29:53 所属栏目:安全 来源:网络整理
导读:假设: val l1 = List(1,2,3) val l2 = List(2,3,1) 我想要一个确认l1等于l2的方法(如同一内容但是顺序不同)。 List / Seq有API方法吗? l1.sameElements(l2) 不工作,因为它也验证顺序。 我想出了以下几点: l1.foldLeft(l1.size == l2.size)(_ l2.contains
假设:

val l1 = List(1,2,3) 
val l2 = List(2,3,1)

我想要一个确认l1等于l2的方法(如同一内容但是顺序不同)。 List / Seq有API方法吗?

l1.sameElements(l2)

不工作,因为它也验证顺序。

我想出了以下几点:

l1.foldLeft(l1.size == l2.size)(_ && l2.contains(_))

有比上述更简洁的做比较吗?

解决方法

如果你想要的是“这些列表包含相同的元素,不管顺序或重复”:

l1.toSet == l2.toSet

如果你想要的是“这些列表包含相同的元素,并且每个重复的数量相同”:

l1.sorted == l2.sorted

如果你想要的是“这些列表包含相同的元素并且具有相同的大小,但给定元素的重复次数可以在两个列表之间不同:”

l1.size == l2.size&& l1.toSet == l2.toSet

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读