优先级队列TOPK问题

一、java中元素的比较

(1)在Java中比较两个元素相等用equals方法

(2)比叫自定义对象的大小关系时,类重写Comparable接口,实现compareTo方法

          若一个类Student implents Comparable,则这个Student类具备了可比较的能力

           public comparareTo(Object o){    }  ,比较当前对象和传入对象的大小关系

            ①当返回值>0时,当前元素"大于"传入对象o

            ②当返回值<0时,当前元素"小于"传入对象o

            ③当返回值=0时,当前元素"等于"传入对象o

package priority_queue.compare;

import java.util.Arrays;

public class Student implements Comparable<Student> {
    private int age;
    private  String name;

    public Student(int age, String name) {
        this.age = age;
        this.name = name;
    }

    @Override
    public String toString() {
        return "Student{" +
                "age=" + age +
                ", name='" + name + '\'' +
                '}';
    }

    @Override
    public int compareTo(Student o) {
      return this.age-o.age;
    }

    public static void main(String[] args) {
        Student[] arr=new Student[]{
                new Student(19,"张三"),
                new Student(20,"李四"),
                new Student(18,"王麻子")
        };
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
    }
}

(3)实现java.until.comparator 接口=>比较器接口

 

 此时进行排序就会到的一个升序的数组,但如果此时要得到一个降序的数组就要改为" o.age-this.age",在程序设计模式中提到,一段程序应该对扩展开放,对修改关闭,就是说当出现新的要求时,尽量不要去影响已经写好的代码,而是用新的代码去完成新要求

java.until.Comparator接口:

一个类如果实现了这个接口,就表示这个类天生就是为别的类的大小关系服务的<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值