`

认识Java Collections (五)

阅读更多
Queue interface

一个队列的接口定义:
public interface Queue<E> extends Collection<E> {
    E element();
    boolean offer(E e);
    E peek();
    E poll();
    E remove();
}

队列的每一个方法都有两种形式,一种当操作失败时会抛出异常,另一种失败时会返回特定的值,返回值的类型依赖于具体方法的定义。
Throws ExceptionReturns special value
Insertadd(e)offer(e)
Removeremove()poll()
Examineelement()peek()

Queue允许对其可容纳元素的数量加以限制,这样的queue我们称之为bounded(有界的),java.util.concurrent中的queue实现是有界的,java.util中的实现则不是。

下面的例子将展示一个倒数计时器,其参数是倒数的时间值:
import java.util.*;

public class Countdown {
    public static void main(String[] args)
            throws InterruptedException {
        int time = Integer.parseInt(args[0]);
        Queue<Integer> queue = new LinkedList<Integer>();
        for (int i = time; i >= 0; i--)
            queue.add(i);
        while (!queue.isEmpty()) {
            System.out.println(queue.remove());
            Thread.sleep(1000);
        }
    }
}

接下来这个例子,我们将使用PriorityQueue类,一个Priority queue是一个优先级队列,默认情况下将按照元素的增序排列。我们将使用这个队列还模拟堆排序(构造 PriorityQueue时应该使用了堆排序算法):
static <E> List<E> heapSort(Collection<E> c) {
    Queue<E> queue = new PriorityQueue<E>(c);
    List<E> result = new ArrayList<E>();
    while (!queue.isEmpty())
        result.add(queue.remove());
    return result;
}


(to be continued...)
分享到:
评论

相关推荐

    java的学习历程.pdf

    在熟悉了Java内置的数据结构后,进一步研究Apache的Java Collections Framework实现,如Apache Commons Collections,可以加深对高级数据结构设计的认识。 总的来说,Java的学习是一个循序渐进的过程,从基础语言...

    Java学习书籍.pdf

    这两个框架的对比和研究能让你对Java的集合处理有更全面的认识。 总之,学习Java需要耐心和实践,通过阅读高质量的书籍和参考资料,结合实际编程练习,你可以逐渐掌握这门语言的精髓。《Thinking in Java》、《Core...

    数据结构与Java面向对象程序设计课程之间的有效衔接.pdf

    通过这种映射关系,可以在教学中将Java Collections框架的讲授与数据结构的知识体系相结合,从而加深学生对数据结构在Java编程中应用的认识。 文章强调,Java Collections框架的设计目的主要是满足高性能、一致性、...

    java反序列香草

    1. **不安全的反序列化库**:某些Java库(如Apache Commons Collections)在反序列化时没有足够的安全性检查,可能导致远程代码执行。攻击者可以通过构造恶意的序列化对象来触发这些库的漏洞。 2. **未验证的数据源...

    java评分管理系统

    Java的Collections框架提供了sort()方法,可以对List接口的实现类进行排序。根据需求,可以选择升序或降序排列,也可以自定义比较器进行复杂排序。排序后的数据会更新到视图上,通过JTable或者JList组件呈现给用户,...

    JAVA 基础教材 PDF

    1. **认识Java**:这一章通常会介绍Java的历史、特点、应用领域以及其与其他编程语言的对比。它还会解释Java平台,包括Java虚拟机(JVM)的概念,以及如何安装和配置Java开发环境。 2. **Java虚拟机简介**(第02章...

    Java开发详解.zip

    031314_【第13章:Java类集】_集合工具类:Collections笔记.pdf 031315_【第13章:Java类集】_Stack类笔记.pdf 031316_【第13章:Java类集】_属性类:Properties笔记.pdf 031317_〖第13章:Java类集〗_范例讲解:一...

    Java软件开发实战 Java基础与案例开发详解 2-7 java上机练习 共5页.pdf

    1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3...

    Java软件开发实战 Java基础与案例开发详解 3-10 java基础知识章节练习 共4页.pdf

    1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3...

    Java软件开发实战 Java基础与案例开发详解 9-5 java程序国际化的实现 共9页.pdf

    1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3...

    国家计算机二级JAVA考试大纲

    8. **了解Java的应用领域**:对Java在实际项目中的应用场景有一定的认识。 #### 考试内容详解 1. **Java语言的特点和实现机制**:深入探讨Java的跨平台性、内存管理机制、垃圾回收机制等。 2. **Java体系结构**: ...

    java基础案例与开发详解案例源码全

    1.2 认识Java语言3 1.2.1 Java语言特性3 1.2.2 JavaApplet4 1.2.3 丰富的类库4 1.2.4 Java的竞争对手5 1.2.5 Java在应用领域的优势7 1.3 Java平台的体系结构7 1.3.1 JavaSE标准版8 1.3.2 JavaEE企业版10 1.3.3 Java...

    Java软件开发实战 Java基础与案例开发详解 11-8 练习题 共5页.pdf

    1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3...

    Java软件开发实战 Java基础与案例开发详解 6-4 访问修饰符 共5页.pdf

    1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3...

    Java软件开发实战 Java基础与案例开发详解 4-6 数组和排序算法章节练习 共4页.pdf

    1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3...

    Java基础教程.md.pdf

    ##### 1.1 认识Java - **诞生时间**:1995年5月23日,Java语言由Sun Microsystems公司推出。 - **创始人**:James Gosling,通常被称为“Java之父”。 ##### 1.2 Java的发展史 - **起源**:Java最初被设计用于消费...

    Java软件开发实战 Java基础与案例开发详解 10-9 练习题 共5页.pdf

    #### 1.2 认识Java语言 Java语言具有跨平台性(一次编写,到处运行)、面向对象、健壮性和安全性等特点。它的设计目标是让程序员能够更容易地开发出稳定可靠的软件系统。 #### 1.3 Java平台的体系结构 Java平台...

    Java软件开发实战 Java基础与案例开发详解 18-6 练习题 共5页.pdf

    1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3...

    Java软件开发实战 Java基础与案例开发详解 17-6 练习题 共4页.pdf

    1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3...

Global site tag (gtag.js) - Google Analytics