• java Comparable接口compareTo集合比较


    java自定义比较器,常用的有两种实现方式Comparable和Comparator

    Comparable和Comparator的主要区别在于:
    (1). Comparator 和 Comparable都是Java中的内部比较器接口,都是用来实现对一个自定义的类进行排序
    (2). 不同的是实现Comparable接口是定义在类的内部,比较代码需要嵌入类的内部结构中
    (3). Comparator 实现在类的外部,单独实现第一个比较器,不需要对原来的类进行结构上的变化,属于无侵入式的

    这里主要讲解Comparable 的使用方式,以下是实现代码,用起来很简单

    1. 创建一个对象PersonVO,然后实现Comparable接口

    @Data
    public class PersonVO implements Comparable<PersonVO> {
    
        private int age;
        private String name;
    
        @Override
        public int compareTo(PersonVO personVO) {
         // 返回的值分三种情况:负数, 零 , 正数
    return this.age - personVO.age; } }

    2. 在使用的时候调用Collections.sort 排序方法

        @Test
        public void testPerson(){
            List<PersonVO> list = new ArrayList<>();
            PersonVO p1 = new PersonVO();
            p1.setAge(18);
            p1.setName("我18岁");
            PersonVO p2 = new PersonVO();
            p2.setAge(27);
            p2.setName("我27岁");
            PersonVO p3 = new PersonVO();
            p3.setAge(9);
            p3.setName("我9岁");
            PersonVO p4 = new PersonVO();
            p4.setAge(30);
            p4.setName("我30岁");
            list.add(p1);
            list.add(p2);
            list.add(p3);
            list.add(p4);
            Collections.sort(list , PersonVO::compareTo);
            System.out.println(list.toString());
        }
  • 相关阅读:
    superset可视化不同算法的点击率
    flume通过avro对接(汇总数据)
    Flume同时输出数据到HDFS和kafka
    剑指offer题目系列二
    剑指offer题目系列一
    Servlet生命周期与线程安全
    Servlet初始化及处理HTTP请求
    Servlet及相关类和接口
    web.xml配置文件详解
    递归与斐波那契数列
  • 原文地址:https://www.cnblogs.com/unknows/p/12808315.html
Copyright © 2020-2023  润新知