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

以不寻常的方式在Groovy中对列表进行排序

发布时间:2020-12-14 16:32:46 所属栏目:大数据 来源:网络整理
导读:我有一个列表,让我们说[猫,狗,牛,马],我希望按以下方式排序 如果Cat在列表中,它应该首先出现 如果Cow在名单上,它应该排在第二位 其余元素应按字母顺序排列. 有任何建议如何在Groovy中完成这项工作? 解决方法 蒂姆的回答非常聪明.我个人更喜欢使用列表操作,
我有一个列表,让我们说[猫,狗,牛,马],我希望按以下方式排序

>如果Cat在列表中,它应该首先出现
>如果Cow在名单上,它应该排在第二位
>其余元素应按字母顺序排列.

有任何建议如何在Groovy中完成这项工作?

解决方法

蒂姆的回答非常聪明.我个人更喜欢使用列表操作,因为它生成的代码稍微容易阅读.

def highPriority = [ 'Cat','Cow' ]

def list = [ 'Armadillo','Dog','Cow','Zebra','Horse','Cat' ]

def remainder = ( list - highPriority ).sort()

list.retainAll( highPriority )

list.sort{ highPriority.indexOf( it ) } + remainder

这会给你两次牛.如果你不想重复,使用intersect非常简单.

def highPriority = [ 'Cat','Cat' ]

list.intersect( highPriority ).sort{ highPriority.indexOf( it ) } + ( list - highPriority ).sort()

(编辑:李大同)

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

    推荐文章
      热点阅读