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

Scala Group保留插入顺序?

发布时间:2020-12-16 09:40:48 所属栏目:安全 来源:网络整理
导读:列表,地图等中的groupBy方法在函数后生成Map。 有没有办法使用groupBy生成保留插入顺序的Map(例如LinkedHashMap)? 我正在使用for循环来手动插入,但是我想知道一个有用的已经定义的函数是否可以帮助我。 提前致谢。 解决方法 groupBy定义在TraversableLike
列表,地图等中的groupBy方法在函数后生成Map。

有没有办法使用groupBy生成保留插入顺序的Map(例如LinkedHashMap)?

我正在使用for循环来手动插入,但是我想知道一个有用的已经定义的函数是否可以帮助我。

提前致谢。

解决方法

groupBy定义在TraversableLike上产生一个immutable.Map,所以你不能使这个方法产生别的东西。

每个条目中元素的顺序已被保留,但不是键的顺序。键是提供的功能的结果,所以它们没有真正的订单。

如果您想根据特定键的第一次出现顺序,请参考如何进行操作。假设我们要按整数的值/ 2分组:

val m = List(4,5,1,2,6,3).zipWithIndex groupBy (_._1 / 2)
val lhm = LinkedHashMap(m.toSeq sortBy (_._2.head._2): _*)
lhm mapValues (_ map (_._1))
// Map(2 -> List(4,5),0 -> List(0,1),1 -> List(2,3),3 -> List(6))
// Note order of keys is same as first occurrence in original list

(编辑:李大同)

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

    推荐文章
      热点阅读