java中list的sort()功能如何使用?
排序时正序/倒序处理起来可能会混淆,可以用更简单的方法。
可以使用java.util自带的比较器来做
Comparator.comparingInt(Integer::intValue).reversed() // 倒序
Comparator.comparingInt(Integer::intValue) // 正序
示例:
public class Main {
    public static void main(String[] args) {
        List<Integer> list = Lists.newArrayList(1, 2, 3);
        list.sort(Comparator.comparingInt(Integer::intValue).reversed()); // 倒序
        print(list);
        list.sort(Comparator.comparingInt(Integer::intValue)); // 默认正序
        print(list);
        List<Integer> list2 = Lists.newArrayList(1, 2, 3);
        list2 = list2.stream().sorted(Comparator.comparingInt(Integer::intValue).reversed())
                .collect(Collectors.toList()); // 倒序
        print(list2);
        list2 = list2.stream().sorted(Comparator.comparingInt(Integer::intValue))
                .collect(Collectors.toList()); // 默认正序
        print(list2);
    }
    /**
     * 输出
     */
    private static <T> void print(List<T> list) {
        list.forEach(e -> System.out.print(e + ","));
        System.out.println();
    }
}
执行输出为:
3,2,1,
1,2,3,
3,2,1,
1,2,3,
对于复杂对象,比如User,想通过年龄来比较
public class User {
    public String name; // 姓名
    public int age; // 年龄
    public int getAge() {
        return age;
    }
}
可以使用:
Comparator.comparingInt(User::getAge).reversed() // 倒序
Comparator.comparingInt(User::getAge) // 正序
java中list的sort()功能如何使用?的更多相关文章
- java中list的sort()功能如何使用?如果倒序如何正序?
		list.sort()接收一个Comparable接口,其中compare方法是必须实现的,int compare(T o1, T o2);,它接受两个参数:o1,o2. o2表示list排序前的前值 ... 
- python 中的sort 和java中的Collections.sort()函数的使用
		x=[1,2,3] x.sort()对的,x这个都变了 y=x.sort()错误 y=sorted(x)对的,x拍好序的一个副本 python中用匿名函数和自定义函数排序:(很奇怪的是比较函数返回的是 ... 
- 自己实现java中Iterator(迭代器功能)
		今天躺在床上忽然想到一个问题,迭代器的代码是如何实现的?于是乎不由自主的爬起来敲两行代码. List<String> list=new ArrayList<>(2); list ... 
- java中List的排序功能的实现
		今天在工作的时候,遇到了List排序的问题,所以总结了一下,与大家分享.Collections.sort排序的时候,用到了Comparator接口下面的compare()方法.下面的小例子中,还用到了 ... 
- Java中List的sort排序重写
		最近遇到需要使用list中sort排序功能,list中存的是自己写的类,所以需要重写sort函数,一般实现如下: Collections.sort(voList, new Comparator< ... 
- JAVA中如何使用SORT从大到小排
		import java.util.Arrays;import java.util.Collections;public class Test { public static void main(Str ... 
- Java中使用Collections.sort()方法对数字和字符串泛型的LIst进行排序
		在List的排序中常用的是Collections.sort()方法,可以对String类型和Integer类型泛型的List集合进行排序. 首先演示sort()方法对Integer类型泛型的List排 ... 
- C#、Java中的一些小功能点总结(持续更新......)
		前言:在项目中,有时候一些小的功能点,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小功能点,以备用,并持续更新...... 1.禁用DataGrid ... 
- java中实现全局变量的功能
		一.通过接口实现 二.通过静态变量 static声明 package test.autorun; import java.util.LinkedList; import java.util.Queu ... 
随机推荐
- KindEditor.ready 不执行的解决方法
			问题描述 按照官网的要求,一一都设置好了,但就是没法显示富文本编辑器. 1.设置好textarea输入框 <textarea id="myEditor" name=" ... 
- laravel配置加解密
			基于安全考虑,我们php项目配置文件中密码应该是加密的,laravel中也提供了OpenSSL 的 AES-256-CBC 来进行加密 但是如果我们项目配置的是其他加密方式,且希望以最少的改动实现读取 ... 
- 开源项目SMSS开源项目(三)——protobuf协议设计
			本文的第一部分将介绍protobuf使用基础以及如何利用protobuf设计通信协议.第二部分会给出smss项目的协议设计规范和源码讲解. 一.Protobuf使用基础 什么是protobuf pro ... 
- VS 超级好用的 Ctrl E E
			C# Interactive 推荐!!! 先看我怎么用的:随便创建一个类 有些编译期的的值不知道查文档又太麻烦怎么办?自己写个控制台测试咩?试试 C# 交互 罢, 选中这个类ctrl EE 然后输入 ... 
- Unity_Dungeonize 随机生成迷宫
			本文对随机生成迷宫的实现思路进行记录,其作用在于为游戏过程提供随机性以及节省开发周期,下面是Dungeonize的结构 随机迷宫的生成主要包括几个阶段 1.生成房间体结构,为墙体,自定义房间,自定义物 ... 
- 一个按键搞定日常git操作
			Git is a free and open source distributed version control system designed to handle everything from ... 
- 一次jvm调优过程
			jvm调优实战 前端时间把公司的一个分布式定时调度的系统弄上了容器云,部署在kubernetes,在容器运行的动不动就出现问题,特别容易jvm溢出,导致程序不可用,终端无法进入,日志一直在刷错误,ku ... 
- .net core mysql CodeFirst
			创建两个项目 1.网站 2.Model层 引用DLL Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.Design Micros ... 
- idea使用PlantUML画类图教程
			嗯,在学设计模式时,画类图画的麻烦,就查了一下,发现idea可以通过插件实现.查了一下,学习,整理笔记和大家交流. 2019.9.11 安装可以百度,网上有好多. PlantUML 官网.如果时间多 ... 
- 域渗透之票据传递攻击(pass the ticket,ptt)
			票据传递攻击(PtT)是一种使用Kerberos票据代替明文密码或NTLM哈希的方法.PtT最常见的用途可能是使用黄金票据和白银票据,通过PtT访问主机相当简单. 1.ptt攻击的部分 就不是简单的N ... 
