java主条件次条件排序_java8 List多条件排序

packagecom.zhangpengfei.demo;importorg.assertj.core.util.Lists;import java.util.*;import java.util.function.*;importjava.util.stream.Collectors;#zs#** ClassName:

* date: 2020/9/15 10:24

*

*@authorzhangpengfei

*@sinceJDK 1.8#fzs#

public classTest {public static voidmain(String[] args) {

Student s1= newStudent();

s1.setNo(1);

s1.setName("张三");

s1.setAge(18);

s1.setAddress("北京");

Student s2= newStudent();

s2.setNo(2);

s2.setName("李四");

s2.setAge(14);

s2.setAddress("上海");

Student s3= newStudent();

s3.setNo(4);

s3.setName("王五");

s3.setAge(17);

s3.setAddress("深圳");

Student s4= newStudent();

s4.setNo(3);

s4.setName("赵六");

s4.setAge(17);

s4.setAddress("广州");

List list = new ArrayList<>();

list.add(s1);

list.add(s2);

list.add(s3);

list.add(s4);

List collect1 =list.stream()

.sorted(Comparator.comparing(Student::getAge).thenComparing(Student::getNo))

.collect(Collectors.toList());

System.out.println("正序:" +collect1);

System.out.println("============================");

List collect2 =list.stream().sorted(Comparator.comparing(Student::getAge).reversed()).collect(Collectors.toList());

System.out.println("倒序:" +collect2);

System.out.println("============================");

}

}classStudent {private intNo;privateString name;private intage;privateString address;public intgetNo() {returnNo;

}public void setNo(intno) {

No=no;

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}public intgetAge() {returnage;

}public void setAge(intage) {this.age =age;

}publicString getAddress() {returnaddress;

}public voidsetAddress(String address) {this.address =address;

}

@OverridepublicString toString() {return "Student{" +

"No=" + No +

", name='" + name + ''' +

", age=" + age +

", address='" + address + ''' +

'}';

}

}

输出结果:

D:Javajdk1.8.0_172binjava.exe -javaagent:E:IDEAlibidea_rt.jar=54551:E:IDEAbin -Dfile.encoding=UTF-8 -classpath D:Javajdk1.8.0_172jrelibcharsets.jar;D:Javajdk1.8.0_172jrelibdeploy.jar;D:Javajdk1.8.0_172jrelibextaccess-bridge-32.jar;D:Javajdk1.8.0_172jrelibextcldrdata.jar;D:Javajdk1.8.0_172jrelibextdnsns.jar;D:Javajdk1.8.0_172jrelibextjaccess.jar;D:Javajdk1.8.0_172jrelibextjfxrt.jar;D:Javajdk1.8.0_172jrelibextlocaledata.jar;D:Javajdk1.8.0_172jrelibextnashorn.jar;D:Javajdk1.8.0_172jrelibextsunec.jar;D:Javajdk1.8.0_172jrelibextsunjce_provider.jar;D:Javajdk1.8.0_172jrelibextsunmscapi.jar;D:Javajdk1.8.0_172jrelibextsunpkcs11.jar;D:Javajdk1.8.0_172jrelibextzipfs.jar;D:Javajdk1.8.0_172jrelibjavaws.jar;D:Javajdk1.8.0_172jrelibjce.jar;D:Javajdk1.8.0_172jrelibjfr.jar;D:Javajdk1.8.0_172jrelibjfxswt.jar;D:Javajdk1.8.0_172jrelibjsse.jar;D:Javajdk1.8.0_172jrelibmanagement-agent.jar;D:Javajdk1.8.0_172jrelibplugin.jar;D:Javajdk1.8.0_172jrelibresources.jar;D:Javajdk1.8.0_172jrelibrt.jar;D:IdeaProjectszhangpengfeitargetclasses;D:MavenRepositoryorgspringframeworkbootspring-boot-starter2.3.3.RELEASEspring-boot-starter-2.3.3.RELEASE.jar;D:MavenRepositoryorgspringframeworkbootspring-boot2.3.3.RELEASEspring-boot-2.3.3.RELEASE.jar;D:MavenRepositoryorgspringframeworkspring-context5.2.8.RELEASEspring-context-5.2.8.RELEASE.jar;D:MavenRepositoryorgspringframeworkbootspring-boot-autoconfigure2.3.3.RELEASEspring-boot-autoconfigure-2.3.3.RELEASE.jar;D:MavenRepositoryorgspringframeworkbootspring-boot-starter-logging2.3.3.RELEASEspring-boot-starter-logging-2.3.3.RELEASE.jar;D:MavenRepositorychqoslogbacklogback-classic1.2.3logback-classic-1.2.3.jar;D:MavenRepositorychqoslogbacklogback-core1.2.3logback-core-1.2.3.jar;D:MavenRepositoryorgapachelogginglog4jlog4j-to-slf4j2.13.3log4j-to-slf4j-2.13.3.jar;D:MavenRepositoryorgapachelogginglog4jlog4j-api2.13.3log4j-api-2.13.3.jar;D:MavenRepositoryorgslf4jjul-to-slf4j1.7.30jul-to-slf4j-1.7.30.jar;D:MavenRepositoryjakartaannotationjakarta.annotation-api1.3.5jakarta.annotation-api-1.3.5.jar;D:MavenRepositoryorgspringframeworkspring-core5.2.8.RELEASEspring-core-5.2.8.RELEASE.jar;D:MavenRepositoryorgspringframeworkspring-jcl5.2.8.RELEASEspring-jcl-5.2.8.RELEASE.jar;D:MavenRepositoryorgyamlsnakeyaml1.26snakeyaml-1.26.jar;D:MavenRepositoryorgspringframeworkbootspring-boot-starter-web2.3.3.RELEASEspring-boot-starter-web-2.3.3.RELEASE.jar;D:MavenRepositoryorgspringframeworkbootspring-boot-starter-json2.3.3.RELEASEspring-boot-starter-json-2.3.3.RELEASE.jar;D:MavenRepositorycomfasterxmljacksoncorejackson-databind2.11.2jackson-databind-2.11.2.jar;D:MavenRepositorycomfasterxmljacksondatatypejackson-datatype-jdk82.11.2jackson-datatype-jdk8-2.11.2.jar;D:MavenRepositorycomfasterxmljacksondatatypejackson-datatype-jsr3102.11.2jackson-datatype-jsr310-2.11.2.jar;D:MavenRepositorycomfasterxmljacksonmodulejackson-module-parameter-names2.11.2jackson-module-parameter-names-2.11.2.jar;D:MavenRepositoryorgspringframeworkbootspring-boot-starter-tomcat2.3.3.RELEASEspring-boot-starter-tomcat-2.3.3.RELEASE.jar;D:MavenRepositoryorgapachetomcatembedtomcat-embed-core9.0.37tomcat-embed-core-9.0.37.jar;D:MavenRepositoryorgglassfishjakarta.el3.0.3jakarta.el-3.0.3.jar;D:MavenRepositoryorgapachetomcatembedtomcat-embed-websocket9.0.37tomcat-embed-websocket-9.0.37.jar;D:MavenRepositoryorgspringframeworkspring-web5.2.8.RELEASEspring-web-5.2.8.RELEASE.jar;D:MavenRepositoryorgspringframeworkspring-beans5.2.8.RELEASEspring-beans-5.2.8.RELEASE.jar;D:MavenRepositoryorgspringframeworkspring-webmvc5.2.8.RELEASEspring-webmvc-5.2.8.RELEASE.jar;D:MavenRepositoryorgspringframeworkspring-aop5.2.8.RELEASEspring-aop-5.2.8.RELEASE.jar;D:MavenRepositoryorgspringframeworkspring-expression5.2.8.RELEASEspring-expression-5.2.8.RELEASE.jar;D:MavenRepositoryorgassertjassertj-core3.16.1assertj-core-3.16.1.jar;D:MavenRepositorycomalibabafastjson1.2.70fastjson-1.2.70.jar;D:MavenRepositorycomnetflixribbonribbon-httpclient2.2.0ribbon-httpclient-2.2.0.jar;D:MavenRepositorycomnetflixribbonribbon-core2.2.0ribbon-core-2.2.0.jar;D:MavenRepositorycommons-configurationcommons-configuration1.8commons-configuration-1.8.jar;D:MavenRepositorycommons-loggingcommons-logging1.1.1commons-logging-1.1.1.jar;D:MavenRepositorycommons-langcommons-lang2.6commons-lang-2.6.jar;D:MavenRepositorycomnetflixribbonribbon-loadbalancer2.2.0ribbon-loadbalancer-2.2.0.jar;D:MavenRepositorycomnetflixnetflix-commonsnetflix-statistics .1.1netflix-statistics-0.1.1.jar;D:MavenRepositorycommons-collectionscommons-collections3.2.1commons-collections-3.2.1.jar;D:MavenRepositoryorgapachehttpcomponentshttpclient4.5.12httpclient-4.5.12.jar;D:MavenRepositoryorgapachehttpcomponentshttpcore4.4.13httpcore-4.4.13.jar;D:MavenRepositorycommons-codeccommons-codec1.14commons-codec-1.14.jar;D:MavenRepositorycomgooglecodefindbugsannotations2.0.0annotations-2.0.0.jar;D:MavenRepositorycomsunjerseyjersey-client1.19.1jersey-client-1.19.1.jar;D:MavenRepositorycomsunjerseyjersey-core1.19.1jersey-core-1.19.1.jar;D:MavenRepositoryjavaxwsrsjsr311-api1.1.1jsr311-api-1.1.1.jar;D:MavenRepositorycomsunjerseycontribsjersey-apache-client41.19.1jersey-apache-client4-1.19.1.jar;D:MavenRepositoryorgslf4jslf4j-api1.7.30slf4j-api-1.7.30.jar;D:MavenRepositorycomnetflixservoservo-core .10.1servo-core-0.10.1.jar;D:MavenRepositorycomnetflixservoservo-internal .10.1servo-internal-0.10.1.jar;D:MavenRepositorycomgoogleguavaguava16.0.1guava-16.0.1.jar;D:MavenRepositorycomnetflixarchaiusarchaius-core .7.4archaius-core-0.7.4.jar;D:MavenRepositorycomgooglecodefindbugsjsr3053.0.1jsr305-3.0.1.jar;D:MavenRepositorycomfasterxmljacksoncorejackson-annotations2.11.2jackson-annotations-2.11.2.jar;D:MavenRepositorycomfasterxmljacksoncorejackson-core2.11.2jackson-core-2.11.2.jar;D:MavenRepositorycomnetflixnetflix-commonsnetflix-commons-util .1.1netflix-commons-util-0.1.1.jar;D:MavenRepositorycomnetflixhystrixhystrix-core1.5.12hystrix-core-1.5.12.jar;D:MavenRepositoryioreactivexrxjava1.3.8rxjava-1.3.8.jar;D:MavenRepositoryorghdrhistogramHdrHistogram2.1.9HdrHistogram-2.1.9.jar com.zhangpengfei.demo.bokeyuan.BoKeYuan

[Student{No=2, name='李四', age=14, address='上海'}, Student{No=3, name='赵六', age=17, address='广州'}, Student{No=4, name='王五', age=17, address='深圳'}, Student{No=1, name='张三', age=18, address='北京'}]============================[Student{No=1, name='张三', age=18, address='北京'}, Student{No=4, name='王五', age=17, address='深圳'}, Student{No=3, name='赵六', age=17, address='广州'}, Student{No=2, name='李四', age=14, address='上海'}]============================Process finished with exit code0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值