在写哈弗曼编码时,看到了优先队列,可是不会用,就用数组排序代替了。现在弄明白了,写出来,希望对读者有所帮助。
优先队列的使用需要实现Comparator接口,具体代码如下:
package learning_lev1_集合框架; import java.util.Comparator; import java.util.PriorityQueue; public class Pq { public void testPriQueue(){ //使用匿名内部类实现comparator接口,匿名类的对象为comp Comparator<Student> comp=new Comparator<Student>() { //实现接口里面的方法,选择age作为比较大小的对象 public int compare(Student o1, Student o2) { Student stu1=o1; Student stu2=o2; if(stu1.getAge()>stu2.getAge())return 1; else if(stu1.getAge()<stu2.getAge())return -1; else return 0; } }; //比较器的对象作为优先队列的参数,才能实现优先队列每次按要求取得最大最小值 PriorityQueue<Student> queue=new PriorityQueue(1,comp); Student stu1=new Student("唐僧", 30, 01); Student stu2=new Student("悟空",32,02); Student stu3=new Student("八戒", 34,03); Student stu4=new Student(" 沙僧 ",31,04); queue.add(stu2); queue.add(stu1); queue.add(stu4); queue.add(stu3); //peek()与poll()的区别是,调用peek()后,队列中的元素 //个数不变,而调用poll()后,最大或最小键值元素被去除 Student student=queue.peek(); //Student student=queue.poll(); System.out.println(queue.size()); System.out.println(student); } public static void main(String[] args) { new Pq().testPriQueue(); } } ------------------------------------------------------------------------------------------------ package learning_lev1_集合框架; public class Student { private int num; private String name; private int age; public int getNum() { return num; } public void setNum(int num) { this.num = num; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Student(String name, int age,int num) { this.name = name; this.age = age; this.num=num; } public String toString(){ return "编号"+num+",姓名:"+name+",年龄:"+age; } }
相关推荐
Java集合框架是Java编程语言中的一个核心组成部分,它为数据存储和操作提供了丰富的类库。在Java中,集合框架主要包括接口(如List、Set、Queue)和实现这些接口的类(如ArrayList、HashSet、LinkedList等)。这个...
Java集合框架是Java编程语言中一个至关重要的组成部分,它为数据存储和操作提供了丰富的类库。泛型是Java 5引入的一项创新特性,极大地增强了集合框架的安全性和效率。本讲解将深入探讨这两个主题,以及与之相关的...
集合框架是Java编程语言中的核心组成部分,它提供了一套高效、灵活的数据结构和算法操作,使得程序员能够方便地存储和管理对象。这篇学习笔记将深入探讨Java集合框架的基础概念、主要类库以及常见应用场景。 首先,...
Java集合框架是Java编程语言中不可或缺的一部分,它提供了一种高效、灵活的方式来存储和操作数据。这个框架由一系列接口和类组成,它们定义了不同类型的集合,如List、Set和Map,以及它们的操作方法和实现原理。理解...
Java集合框架是Java编程语言中一个至关重要的组成部分,它提供了数据结构和算法的抽象,使得开发者可以方便地存储和管理各种类型的数据。本篇将详细探讨Java集合框架的基础知识,包括核心接口、类的层级结构以及Java...
数据结构和Java集合框架是Java编程中至关重要的概念,它们是高效编程和算法设计的基础。在Java中,数据结构指的是组织、存储和管理数据的方式,而集合框架则是一组接口和类,为处理各种数据结构提供了统一的API。 ...
JAVA集合框架学习笔记 JAVA集合框架是Java语言中提供的一种数据结构,用于存储和管理大量数据。它提供了多种接口和实现类,例如Collection、List、Map等,帮助开发者更方便地处理数据。 什么是异常? 在Java中,...
Java 集合框架(JCF:Java Collections Framework)之概述 Java 集合框架(JCF:Java Collections Framework)是 Java 语言中的一组类库,用于实现集合操作的统一标准。集合是计算机科学中的一种基本概念,来源于...
Java集合框架是Java编程语言中处理对象集合的一套接口和类。该框架提供了用于存储和操作集合的标准方法。在Java集合框架中,基本的接口分为两大类:Collection和Map。 Collection接口用于表示一组对象,称为其元素...
Java集合框架是Java编程语言中一个非常重要的组成部分,它为开发者提供了处理对象集合的统一接口和实现。在Java中,集合框架主要由一系列接口和类组成,这些接口和类定义了存储、操作和管理对象的基本行为。让我们...
Java集合框架是Java编程语言中的核心部分,它提供了一组高效、灵活的数据结构,使得开发者可以方便地存储和管理各种类型的数据。Java集合框架主要包括两大类:Collection和Map。 Collection接口是所有单值容器的父...
### Java集合框架使用总结 #### 前言 本文旨在为读者提供关于Java集合框架的概览性介绍,帮助理解其整体架构与设计理念。对于希望深入掌握特定接口或类使用方法的学习者,建议查阅官方提供的Java API文档。 #### ...
JAVA泛型与集合框架知识点总结 JAVA泛型是JDK1.5中引入的一种机制,主要目的是可以建立具有类型安全的集合...Java泛型和集合框架是Java语言的重要组成部分,掌握它们可以使得开发者更好地开发高效、可靠的应用程序。
Java集合框架是Java编程语言中的核心部分,它提供了一套高效、灵活的数据管理机制,使得开发者可以方便地处理各种数据结构。本章我们将深入探讨Java集合框架,包括其概念、接口以及不同类型的集合结构。 首先,集合...
Java集合框架是Java编程语言中不可或缺的一部分,它提供了一组接口和类,用于高效地存储、管理和操作数据。这个“一个讲解很清晰的Java集合框架PPT”显然是一个对外公开的教育资源,旨在帮助学习者深入理解Java集合...
Java集合框架是Java编程语言中一个非常重要的组成部分,它为开发者提供了存储和操作对象的统一接口和类。这个框架使得处理各种数据结构变得更加方便和高效。在这个“java集合框架的使用”主题中,我们将深入探讨如何...