java stream使用指南-------sorted使用及进阶

引入

用了一段时间的jdk8的新特性,lambda表达式、方法引用、stream流,用起来是真的顺手啊,最近碰到了一个排序的问题,引发了一些思考,然后就写了这篇博客,归纳总结sorted的用法,在做笔记的同时也让自己有更深的理解。

数据准备

1. 依赖

我喜欢用google的集合工具类,让我构造测试数据更简便。然后也用lombok,依赖:

        <!--google集合工具类-->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>30.0-jre</version>
        </dependency>

            <!--lombok,需要插件配合使用-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
        </dependency>

2. 相关类

User类

/*
*链式调用,我也有写相关博客,不过不是介绍基础用法的,是这个链式调用一个不太完美的地方,
*感兴趣的可以去看一看:https://blog.csdn.net/ql_7256/article/details/120274432 
*/
@Data
@Accessors(chain = true) 
public class User  {

    private String username;
    private String password;
    private Integer age;
    private Integer height;

    private Address address;

    private Map others;

}

Address类,注意:这个类在后续的测试中要改动

@Data
@Accessors(chain = true)
public class Address {

    private String province;
    private String city;
    private String county;
    
}

数据准备,

    private List<User> users = new ArrayList<User>() {
  {
        add(new User().setUsername("张三").setPassword("123456").setAge(20).setHeight(170)
                .setAddress(new Address().setProvince("四川省").setCity("成都市").setCounty("武侯区"))
                .setOthers(ImmutableMap.builder().put("sorted","AAA").put("bbb","BBB").put("ccc","CCC").build()));

        add(new User().setUsername("李四").setPassword("123456").setAge(16).setHeight(175)
                .setAddress(new Address().setProvince("四川省").setCity("成都市").setCounty("锦江区"))
                .setOthers(ImmutableMap.builder().put("sorted","DDD").put("eee","EEE").put("fff","FFF").build()));

        add(new User().setUsername("王五").setPassword("123456").setAge(20).setHeight(180)
                .setAddress(new Address().setProvince("四川省").setCity("成都市").setCounty("青羊区"))
                .setOthers(ImmutableMap.builder().put("sorted
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值