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());
    }

猜你喜欢

转载自www.cnblogs.com/unknows/p/12808315.html