zoukankan      html  css  js  c++  java
  • Java8 使用 lambda 对 List、Set 进行排序

    数据结构

    public class InsurerClientDto {
    
        private Long insurerClientId;
        private String clientOidType;
        private Long clientOid;
        private String clientCode;
        private String clientDesc;
        private Long hqHdrId;
    
        public InsurerClientDto() {
            //Default constructor
        }
    
        public void setInsurerClientId(Long insurerClientId) {
            this.insurerClientId = insurerClientId;
        }
    
        public Long getInsurerClientId() {
            return insurerClientId;
        }
    
        public void setClientOidType(String clientOidType) {
            this.clientOidType = clientOidType;
        }
    
        public String getClientOidType() {
            return clientOidType;
        }
    
        public void setClientOid(Long clientOid) {
            this.clientOid = clientOid;
        }
    
        public Long getClientOid() {
            return clientOid;
        }
    
        public String getClientCode() {
            return clientCode;
        }
    
        public void setClientCode(String clientCode) {
            this.clientCode = clientCode;
        }
    
        public void setClientDesc(String clientDesc) {
            this.clientDesc = clientDesc;
        }
    
        public String getClientDesc() {
            return clientDesc;
        }
    
        public Long getHqHdrId() { return hqHdrId; }
    
        public void setHqHdrId(Long hqHdrId) { this.hqHdrId = hqHdrId; }
    
        @Override
        public String toString() {
            return "InsurerClientDto [insurerClientId=" + insurerClientId + ", clientOidType=" + clientOidType
                    + ", clientOid=" + clientOid + ", clientCode=" + clientCode + ", clientDesc=" + clientDesc
                    + ", hqHdrId=" + hqHdrId + "]";
        }
    }

    数据准备

    List<InsurerClientDto> insurerClientDto = new ArrayList<>();
    InsurerClientDto dto
    = new InsurerClientDto(); dto.setClientCode("KP03S"); insurerClientDto.add(dto);
    dto
    = new InsurerClientDto(); dto.setClientCode("KP048"); insurerClientDto.add(dto);
    dto
    = new InsurerClientDto(); dto.setClientCode("KP003"); insurerClientDto.add(dto);

    3种方法

    1、不能实现排序

    Comparator<InsurerClientDto> clinentComparator = (v1, v2) -> v1.getClientCode().compareTo(v2.getClientCode());
    insurerClientDto.stream().sorted(clinentComparator.reversed());

    不能实现排序原因:

    2、可以实现排序

    Comparator<InsurerClientDto> clinentComparator = Comparator.comparing(InsurerClientDto :: getClientCode, String.CASE_INSENSITIVE_ORDER);
    insurerClientDto.sort(clinentComparator);

    3、可以实现排序

    insurerClientDto.sort((d1, d2) -> d1.getClientCode().compareTo(d2.getClientCode()));
    //或(用法相同,上面省略类名而已)
    insurerClientDto.sort((InsurerClientDto d1, InsurerClientDto d2) -> d1.getClientCode().compareTo(d2.getClientCode()));

    原文链接:

    https://www.cnblogs.com/poterliu/p/13231500.html

    参考链接:

    https://developer.aliyun.com/article/714142

    https://my.oschina.net/HJCui/blog/1573344

  • 相关阅读:
    社区运营一点事
    从拉动APP下载谈运营
    c#基础学习(0702)之面向对象和方法重写概述
    c#基础学习(0706)之使用虚方法实现多态
    c#基础学习(0703)之string.Format格式化日期
    c#基础学习(0701)之一些简单的方法练习
    c#基础学习(0630)之面向对象总习
    c#基础学习(0629)之导出Excel方法
    c#基础学习(0628)之使用进程打开指定的文件、模拟磁盘打开文件
    c#基础学习(0627)之类型转换、算数运算符++、--
  • 原文地址:https://www.cnblogs.com/poterliu/p/13231500.html
Copyright © 2011-2022 走看看