对列表进行排序而不更改scala中的顺序
发布时间:2020-12-16 18:18:40 所属栏目:安全 来源:网络整理
导读:val a = List((2,5,1),(3,8,4),(5,4,3),(9,1,2)) 我希望输出作为一个不同的列表,它按照排序顺序排列,基于列表中每个元组的中间元素,并且第一个第三元组的顺序不应该改变.它就像只交换第二个元组. 预期的答案是: List((2,2)) 解决方法 如下所示,您可以单独对
val a = List((2,5,1),(3,8,4),(5,4,3),(9,1,2)) 我希望输出作为一个不同的列表,它按照排序顺序排列,基于列表中每个元组的中间元素,并且第一个&第三元组的顺序不应该改变.它就像只交换第二个元组. 预期的答案是: List((2,2)) 解决方法
如下所示,您可以单独对第二个项目进行排序并将它们压缩在一起
a.zip(a.map(_._2).sorted).map{ case((a,b,c),sortedB) => (a,sortedB,c)} // res = List((2,2)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |