首页 > 其他分享 >比较器

比较器

时间:2023-12-20 13:12:08浏览次数:14  
标签:temp int public add standA Test 比较

比较器

PriorityQueue&自定义类比较器使用

思路来源

一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到

笔记内容

  • 问题描述

    1. 比较器作用:重载比较运算符
    2. 比较器默认规则:返回负数第一个参数排前面;返回正数第二个参数拍前面
  • 代码实现

    import java.util.Arrays;
    import java.util.Comparator;
    import java.util.PriorityQueue;
    
    public class MyComparer {
        public static class SortByStandA implements Comparator<Test>{
            @Override
            public int compare(Test o1, Test o2) {
                return o1.standA - o2.standA; //升序
            }
        }
    
        public static class Dagendui implements Comparator<Integer>{
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2 - o1;
            }
        }
    
        public static void main(String[] args) {
            /**
             * 自定义类比较器
             * */
            Test a = new Test("aa",10,56);
            Test b = new Test("bb",5,44);
            Test c = new Test("cc",78,98);
            Test[] temp = {a,b,c};
            Arrays.sort(temp,new SortByStandA());
    
            for (int i = 0; i < temp.length; i++) {
                System.out.println(temp[i]);
            }
    
            //大根堆
            PriorityQueue<Integer> temp = new PriorityQueue<>(new Dagendui());
            temp.add(1);
            temp.add(5);
            temp.add(7);
            temp.add(9);
            temp.add(6);
            temp.add(2);
            while (!temp.isEmpty()){
                System.out.println(temp.poll());
            }
    
        }
    }
    
    class Test{
        public String name;
        public int standA;
        public int standB;
    
        public Test(String name, int standA, int standB) {
            this.name = name;
            this.standA = standA;
            this.standB = standB;
        }
    
        @Override
        public String toString() {
            return "Test{" +
                    "name='" + name + '\'' +
                    ", standA=" + standA +
                    ", standB=" + standB +
                    '}';
        }
    }
    
    

标签:temp,int,public,add,standA,Test,比较
From: https://www.cnblogs.com/nouleeee/p/17916286.html

相关文章

  • 音乐艺术学培训机构要怎么装修比较好?
      现在教育机构发展的十分迅速,要让教育机构专业得到展现,除了开设丰富的课程班,机构装修也是很重要的,装修决定了机构专业性和规模,那英语艺术机构要怎么装修好?  音乐表演室要求观众将注意力集中在表演区域,所以设计师在设计时,可以采用色彩以纯色为主,避免观众被复杂色彩所吸引,一个较......
  • 无涯教程-Java - Comparator 比较器函数
    TreeSet和TreeMap都按排序顺序存储元素。但是,比较器(Comparator)精确地定义了排序顺序的含义。比较器(Comparator)接口定义了两个方法:compare()和equals()。Compare方法intcompare(Objectobj1,Objectobj2)obj1和obj2是要比较的对象。如果对象相等,则此方法返回零。如果obj......
  • 微课视频怎么设计比较吸引人?
      微课是以视频为主要载体,记录教师在课堂教育教学过程中围绕某个知识点或教学环节而开展的教与学活动的全过程,是大数据时代为适应学生的思维习惯和成长特点而产生的教学形式。微课视频怎么设计比较吸引人?  1.多长的视频最吸引人  基于edX数据的统计,无论视频多长,用户实际......
  • Python学习之十五_不同类型数据库表内容比较
    Python学习只十五_不同类型数据库表内容比较前言最近学习力总结了很多Python相关的内容本次想继续学习一下不同数据库之间的数据比较.这样理论上可以极大的缩减不同数据库测试成本.感谢Python以及之前大拿的各种资料.这个学习还是表简单与单纯.理论上可以通过标准SQL......
  • 嵌入式操作系统的抉择:FreeRTOS、Linux、LiteOS的异同比较
    引言:在嵌入式系统开发中,选择合适的操作系统是至关重要的决策。FreeRTOS、Linux和LiteOS都是嵌入式领域常见的操作系统,各自具有特定的优势和应用场景。本篇博客将深入比较FreeRTOS、Linux和LiteOS之间的异同点,为嵌入式开发者提供更清晰的选择指南。1.FreeRTOS:轻量级实时操作系统Fr......
  • 2024年值得关注的11款工单管理系统——完整比较分析
    享11款主流的工单管理系统,比如:1.PingCode:IT服务管理(ITSM)系统;2.纷享销客:一站式客服工单管理方案;3.Udesk:客户支持或服务台系统;4.OTRS:海外ITSM工单系统;5.Worktile:项目管理系统;6.osTicket:开源客户支持或服务台系统等。一、工单管理系统的类型工单管理系统可以根据不同的应用场景和......
  • 序贯概率比较检验
    序贯概率比较检验sequentialprobabilityratiotest(SPRT)定义:是对于序贯抽样方案的检验方法序贯抽样方案是指在抽样时,不事先规定总的抽样个数(观测或实验次数),而是先抽少量样本,根据其结果,再决定停止抽样或继续抽样、抽多少,这样下去,直至决定停止抽样为止。反之,事先确定抽样个......
  • 38system函数与popen函数的比较
      importosr'''os.system和os.popen函数的对比。输出内容存在中文字符时,os.system回显会出现乱码,而os.popen不会。'''#执行popen函数defdoPopen():#执行命令,返回一个迭代对象给cmdcmd=os.popen('ipconfig/all')#cmd.readlines()返回一......
  • C# 两个日期比较大小
     一、直接比较大小stringed="2023-12-1309:27:59.000";//过去式DateTimenowDateTime=DateTime.Now;DateTimeexpirationDate=Convert.ToDateTime(ed);//质保期长日期DateTimeexpirationDate1=Convert.ToDateTime(Convert......
  • Windows、Linux 和 Mac:操作系统之间的比较
    Windows系统、Linux系统与Mac系统:操作系统的对比与选择操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。以下是W......