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

用Java返回排序列表

发布时间:2020-12-15 05:20:21 所属栏目:Java 来源:网络整理
导读:我正在编写这样的代码: ListBean beans = service.findBeans();Collections.sort(beans,new BeanComparator());return beans; 它完美地运作.我正在寻找的只是一行的快捷方式: return somelibrary.Collections.sort(service.findBeans(),new BeanComparator
我正在编写这样的代码:

List<Bean> beans = service.findBeans();
Collections.sort(beans,new BeanComparator());
return beans;

它完美地运作.我正在寻找的只是一行的快捷方式:

return somelibrary.Collections.sort(service.findBeans(),new BeanComparator());

要么:

return somelibrary.newList(service.findBeans(),new BeanComparator());

请注意,它需要一个可变列表.

解决方法

这是一行:

List<Bean> beans = service.findBeans(); Collections.sort(beans,new BeanComparator()); return beans;

但更严重的是,Java并不是单行的正确语言.而且,仅仅因为某种东西是单线并不意味着它更好.例如,我最初惊讶地发现这个:

return condition ? a : b;

创建比…更长的字节码

if( condition )
    return a;
else
    return b;

但这就是语言和编译器的方式.

如果你坚持你的单线,Guava的Ordering可以做到:

return Ordering.from( new BeanComparator() ).sortedCopy( service.findBeans() );

返回的列表是可修改的,可序列化的,并具有随机访问权限.

效率方面我认为在开销方面存在一些浪费.此外,您现在依赖于第三方库.你本质上是使用非常强大的工具来完成一项非常简单的任务.如果您正在使用它,那就太过分了.

(编辑:李大同)

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

    推荐文章
      热点阅读