当前位置: 首页 > 后端技术 > Java

Comparator.comparing排序实例

时间:2023-04-01 14:05:25 Java

Comparator.comparing排序实例[TOC]背景以往常用的排序方式是通过实现Comparator接口进行排序。写法比较复杂。使用Comparator.comparing可以简化代码。看起来逻辑更清晰了。实体类importlombok.Data;/***@Author:ck*@Date:2021/10/123:51pm*/@DatapublicclassModel{privateStringname;privateintage;}例1实现了Comparator接口来排序,代码比较复杂(o2);}});例2使用Comparator.comparing实现排序,还可以指定按哪个属性排序,可以实现倒序。packagecom.kaesar.java_common;importjava.util.ArrayList;importjava.util.Collections;importjava.util.Comparator;importjava.util.List;/***Comparator.comparing方法的使用**@Author:ck*@Date:2021/10/123:51pm*/publicclassComparatorTest{publicstaticvoidmain(String[]args){Listmodels=newArrayList<>();模型model1=新模型();model1.setAge(300);model1.setName("a");models.add(model1);模型model2=newModel();model2.setAge(500);model2.setName("c");模型.add(模型2);模型model3=newModel();model3.setAge(100);model3.setName("b");models.add(model3);System.out.println("-----排序在-----之前");//在排序之前for(Modelcontract:models){System.out.println(contract.getName()+""+contract.getAge());}System.out.println("-----排序后,按年龄排序-----");集合.sort(m模型,Comparator.comparing(Model::getAge));//排序为(Modelmodel:models){System.out.println(model.getName()+""+model.getAge());}系统。out.println("-----排序后,按年龄倒序-----");Collections.sort(模型,Comparator.comparing(Model::getAge).reversed());//排序后for(Modelmodel:models){System.out.println(model.getName()+""+model.getAge());}System.out.println("-----排序后,按名字排序-----");Collections.sort(模型,Comparator.comparing(Model::getName));//排序后for(Modelmodel:models){System.out.println(model.getName()+""+model.getAge());}}}$1.01^{365}≈37.7834343329$$0.99^{365}≈0.02551796445$相信坚持的力量!