list 多种排序,java8 ,Lambda写法,升序降序,多条件排序_阿萨德夫csdn-程序员宅基地

技术标签: java工具类  

package com.xiong.test.group_sort;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
 
/**
 * @author Tan
 * @version V1.0
 * @description: GroupTestMain
 * @date 2019/9/27
 */
public class SortTestMain {
 
    public static void main(String[] args) {
        List<Person> persons = new ArrayList<>();//列表
 
        persons.add(new Person("aaa", 12));
        persons.add(new Person("ccc", 20));
        persons.add(new Person("bbb", 8));
 
 
        //no 1. Collections排序
 
        System.out.println("Age排序前:");
        persons.forEach((person)->System.out.println(person));
 
        //Collections排序升序
        Collections.sort(persons, new Comparator<Person>() {
            @Override
            public int compare(Person o1, Person o2) {
                return o1.getAge().compareTo(o2.getAge());
            }
        });
 
        System.out.println("Age升序排序后:");
        persons.forEach((person)->System.out.println(person));
 
        //Collections排序降序
        Collections.sort(persons, new Comparator<Person>() {
            @Override
            public int compare(Person o1, Person o2) {
                return o2.getAge().compareTo(o1.getAge());
            }
        });
 
        //循环打印
        System.out.println("Age降序排序后:");
        persons.forEach((person)->System.out.println(person));
 
        System.out.println("***************************************************************");
 
        // no 2.Lambda写法,JAVA8的写法
        // persons.sort((Developer o1, Developer o2)->o1.getAge().compareTo(o2.getAge())); //可以更简洁,如下:
 
        //升序排序
        persons.sort((a, b) -> a.getName().compareTo(b.getName()));
        System.out.println("Name升序排序后:");
        persons.forEach((person)->System.out.println(person));
 
 
        //降序排序, a,b倒转即可
        persons.sort((a, b) -> b.getName().compareTo(a.getName()));
        System.out.println("Name降序排序后:");
        persons.forEach((person)->System.out.println(person));
 
        //升序排序
        persons.sort(Comparator.comparing(Person::getAge));
        System.out.println("Age升序排序:");
        persons.forEach((person)->System.out.println(person));
 
        //降序排序, 加上 .reversed() 即可
        persons.sort(Comparator.comparing(Person::getAge).reversed());
        System.out.println("Age降序排序:");
        persons.forEach((person)->System.out.println(person));
 
        //先配置再排序
        Comparator<Person> ageComparator = (o1, o2)->o1.getName().compareTo(o2.getName());
        persons.sort(ageComparator);                //按上面配置的顺序取值
        System.out.println("Name升序排序后:");
        persons.forEach((person)->System.out.println(person));
 
        System.out.println("Name降序排序后:");
        persons.sort(ageComparator.reversed());     //按上面配置的顺序反向取值
        persons.forEach((person)->System.out.println(person));
 
 
        // 多条件排序第二个写法,先按Age排序,再根据name排序
        persons.sort(Comparator.comparing(Person::getAge).thenComparing(Person::getName));
        System.out.println("多条件排序后:");
        persons.sort(ageComparator.reversed());     //按上面配置的顺序反向取值
        persons.forEach((person)->System.out.println(person));
 
    }
 
 
}

public class Person {
    private String name;
    private Integer age;
 
    public Person(String name, int age) {
        this.age = age;
        this.name = name;
    }
}
————————————————
版权声明:本文为CSDN博主「谭cyzz」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhan107876/article/details/101556373

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/kanglong129/article/details/103244271

智能推荐

oracle split去逗号,行列转换_oracle拆分函数按逗号拆分 clob-程序员宅基地

文章浏览阅读3.6w次,点赞3次,收藏12次。1.针对 '1','2','3','4','5'(逗号在字符串外面)SQL> SELECT COLUMN_VALUE FROM TABLE(SYS.ODCIVARCHAR2LIST('1','2','3','4','5'));COLUMN_VALUE-----------------------------------------------------------------_oracle拆分函数按逗号拆分 clob

关于取整符号(二叉树具有n个结点的m次树的最小高度⌈logₘ(n(m-1)+1)⌉)_m叉树最小高度为啥向上取整-程序员宅基地

文章浏览阅读2.1k次。性质4 具有n个结点的m次树的最小高度为关于取整符号:向上取整⌈⌉和向下取整⌊⌋符号向下取整的运算称为Floor,用数学符号 ⌊ ⌋ 表示;向上取整的运算称为Ceiling,用数学符号 ⌈ ⌉ 表示。例如:⌊59/60⌋=0⌈59/60⌉=1⌊-59/60⌋=-1⌈-59/60⌉=0向上向下 取整函数数只会对小数点后面的 数字不为零 的数进行操作,要是给它一个整数 它就返回整数本..._m叉树最小高度为啥向上取整

Camera HAL3的整体架构和流程_mtk camera hal3-程序员宅基地

文章浏览阅读2.4k次,点赞10次,收藏42次。Camera的整体架构上图是Google官方的Camera架构,Google封装了HAL层接口:ICameraProvider, ICameraDevice, ICameraDeviceSession。这几个接口的作用如下:ICameraProvider:用于枚举单个设备并管理其状态。ICameraDevice:相机设备接口。ICameraDeviceSession:活跃的相机设备会话接口。MTK HAL3结构主要实现了这几个接口, CameraProviderImpl实现了IC._mtk camera hal3

解决maya导出alembic文件隐藏物体也导出的问题。_alembic maya-程序员宅基地

文章浏览阅读2.4k次。在cg制作过程中,我们经常会使用maya导出alembic文件,但是我发现有些情况下我们不需要把场景中的隐藏物体也导出_alembic maya

android textView设置html,解决图片和文字不对齐的问题_textview html.fromhtml 图品不居中问题-程序员宅基地

文章浏览阅读9.3k次,点赞2次,收藏7次。evernote中的笔记,这里分享一下:evernote笔记入口用textview可以显示html富文本,比显示单纯的文字要友好很多,效果图: 但是问题也很多。首先是 html 的支持实在有限,很多在html中比较easy的事情,在这里就感觉很困难,项目中遇到的两个问题: 1. 调整字体大小的时候,_textview html.fromhtml 图品不居中问题

MATLAB动态图画法-使用For命令实现重力加速度分叉_重力加速度matlab-程序员宅基地

文章浏览阅读837次。vx = 40;T = 0.01;t = 0:T:5;x = vx*t;y1 = -9.8*t.^2/2;y2 = 9.8*t.^2/2;figure()for i=1:(length(x)-1)axis([0,200,-100,100])X = x(i:i+1);Y1 = y1(i:i+1);Y2 = y2(i:i+1);plot(X,Y1);hold onplot..._重力加速度matlab

随便推点

android 11.0 去掉usb授权提示框 默认给予权限_android11 授予app所需的所有权限,例如:usb访问读写权限(不弹出授权框,默认允许),-程序员宅基地

文章浏览阅读4.2k次,点赞2次,收藏5次。在11.0 的产品开发中,在进行iot开发过程中,在插入usb设备时会弹出usb授权提示框,也带来一些不便,这个需要默认授予USB权限,插拔usb都不弹出usb弹窗所以这要从usb授权相关管理页默认给与usb权限。_android11 授予app所需的所有权限,例如:usb访问读写权限(不弹出授权框,默认允许),

Spring Boot 整合 JMS(ActiveMQ)_springboot jms-程序员宅基地

文章浏览阅读1.1k次。Spring Boot 整合 JMS(ActiveMQ)_springboot jms

HTML+CSS+JavaScript制作七夕表白网页(含音乐+自定义文字)_程序员网页表白制作-程序员宅基地

文章浏览阅读1.2w次,点赞23次,收藏131次。❉ HTML+CSS+JavaScript制作七夕表白网页(含音乐+自定义文字)一年一度的520情人节/七夕情人节/女朋友生日/程序员表白,是不是要给女朋友或者正在追求的妹子一点小惊喜呢,今天这篇博客就分享下前端代码如何实现HTML+CSS+JavaScript制作七夕表白网页(含音乐+自定义文字)。赶紧学会了,来制作属于我们程序员的浪漫吧!❉ 文章目录 ❉ HTML+CSS+JavaScript制作七夕表白网页(含音乐+自定义文字)❉ 效果演示❉ 代码文件目录一、文字修改(代码实现) _程序员网页表白制作

微信小程序常用组件视频课程-表单组件-checkbox-group 多项选择器 的使用_微信小程序 checkbox-group data-index-程序员宅基地

文章浏览阅读944次。js代码 /** * 页面的初始数据 */ data: { }, mycheck:function(e){ console.log(e.detail.value) },wxml代码<checkbox-group bindchange="mycheck"> <checkbox value='香蕉'>香蕉</check..._微信小程序 checkbox-group data-index

echarts折线图实线加虚线_echarts 折现图加条虚线-程序员宅基地

文章浏览阅读2.4k次。option = { title: { text: 'echarts折线图实线加虚线' }, //用formatter回调函数显示多项数据内容 tooltip: { trigger: 'axis', formatter: function (params, ticket, callback) { var htmlStr = ''; var valMap = {}; ..._echarts 折现图加条虚线

MxNet创建ILSVRC2012.rec文件_ilsvrc12-程序员宅基地

文章浏览阅读312次。ILSVRC2012是一个经典的深度学习验证数据集,它包含1000个类别。在官网下载数据集,下载的文件包含以下几个文件:ILSVRC2012包含120多万张train图片,以及5万张val图片。下载后的train数据集将近150G,val数据集约6.7G。为了确定下载的.tar文件没有损坏,使用下面的代码进行验证:import osfrom mxnet.gluon.utils import check_sha1_TARGET_DIR = '/media/wang/WangKe/Image_ilsvrc12

推荐文章

热门文章

相关标签