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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |