`
cakin24
  • 浏览: 1396400 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

ArrayDeque集合的妙用

    博客分类:
  • java
阅读更多

        Deque接口是Queue接口的子接口,它代表一个双端队列,该队列允许从两端来操作队列中的元素。Deque不仅可以当成双端队列使用,而且可以当成栈来使用。

        ArrayDeque集合是Deque接口的实现类,它是一个基于数组的双端队列,创建Deque时同样可以指定一个numElements参数,该参数用于指定Object[]数组的长度;如果不指定该参数,Deque底层数组长度为16。

        ArrayDeque集合既可当队列使用,也可当栈使用,本篇将演示这两种典型的用法。

一 ArrayDeque集合当栈来使用。

1 代码示例

import java.util.*;

public class ArrayDequeStack
{
	public static void main(String[] args)
	{
		ArrayDeque stack = new ArrayDeque();
		// 依次将三个元素push入"栈"
		stack.push("循循渐进Linux");
		stack.push("小学语文");
		stack.push("时间简史");
		// 输出:[时间简史, 小学语文, 循循渐进Linux]
		System.out.println(stack);
		// 访问第一个元素,但并不将其pop出"栈",输出:时间简史
		System.out.println(stack.peek());
		// 依然输出:[时间简史, 小学语文, 循循渐进Linux]
		System.out.println(stack);
		// pop出第一个元素,输出:时间简史
		System.out.println(stack.pop());
		// 输出:[小学语文, 循循渐进Linux]
		System.out.println(stack);
	}
}

 2 运行结果

[时间简史, 小学语文, 循循渐进Linux]

时间简史

[时间简史, 小学语文, 循循渐进Linux]

时间简史

[小学语文, 循循渐进Linux] 

3 代码说明

上面的程序显示了ArrayDeque作为队列的行为。

 

二 ArrayDeque集合当队列来使用

1 代码示例

import java.util.*;

public class ArrayDequeQueue
{
	public static void main(String[] args)
	{
		ArrayDeque queue = new ArrayDeque();
		// 依次将三个元素加入队列
		queue.offer("光头强");
		queue.offer("熊大");
		queue.offer("熊二");
		// 输出:[光头强, 熊大, 熊二]
		System.out.println(queue);
		// 访问队列头部的元素,但并不将其poll出队列"栈",输出:光头强
		System.out.println(queue.peek());
		// 依然输出:[光头强, 熊大, 熊二]
		System.out.println(queue);
		// poll出第一个元素,输出:光头强
		System.out.println(queue.poll());
		// 输出:[熊大, 熊二]
		System.out.println(queue);
	}
}

2 运行结果

[光头强, 熊大, 熊二]

光头强

[光头强, 熊大, 熊二]

光头强

[熊大, 熊二]

3 代码说明

上面的程序显示了ArrayDeque作为队列的行为。 

0
0
分享到:
评论

相关推荐

    arraydeque

    arraydeque

    java集合-ArrayDeque的使用

    基于数组实现:ArrayDeque 内部使用循环数组来存储元素。这种实现方式使得在两端进行插入和删除操作时具有较高的效率。 不允许存储 null 元素:与大多数Java集合不同,ArrayDeque 不允许存储 null 元素。如果试图...

    Java集合ArrayDeque类实例分析

    Java集合ArrayDeque类实例分析 Java集合ArrayDeque类实例分析主要介绍了ArrayDeque类的实现机理、基本特征和实现方法等相关知识点。 ArrayDeque类的继承结构 ArrayDeque类继承自AbstractCollection,实现了...

    java集合 ArrayDeque源码详细分析

    Java 集合 ArrayDeque 源码详细分析 ArrayDeque 是一种以数组方式实现的双端队列,它是非线程安全的。下面我们将对 ArrayDeque 的源码进行详细分析。 双端队列 双端队列是一种特殊的队列,它的两端都可以进出元素...

    java 集合

    `Queue`接口用于表示先进先出(FIFO)的数据结构,如`ArrayDeque`和`LinkedList`可以作为队列使用。 在Java集合框架中,`Collection`是所有单值集合的父接口,它包含了`List`、`Set`等子接口。而`Iterable`接口是...

    java中关于集合的操作

    - **Queue**: 用于队列操作,如LinkedList(也可作为List使用)和ArrayDeque。 - **Map**: 存储键值对,如HashMap和TreeMap。 2. **实现类**: - ArrayList:基于数组的列表实现,提供快速随机访问,但插入和...

    java泛型集合 java集合 集合 java Collection

    一种是使用`Collections.sort()`方法,它适用于`List`接口的实现,如`ArrayList`。例如: ```java List<Integer> numbers = new ArrayList(); // 添加元素... Collections.sort(numbers); ``` 另一种是通过实现`...

    集合框架学习笔记

    在使用集合框架时,我们还需要了解迭代器(Iterator)和泛型(Generic)的概念。迭代器用于遍历集合中的元素,提供remove()方法删除元素。泛型则增强了类型安全性,避免了运行时类型转换异常,提高了代码可读性和复用性...

    java集合思维导图

    本思维导图及总结旨在深入理解并掌握Java集合的相关概念和使用方法。 首先,我们来了解一下Java集合框架的基本构成。Java集合框架主要包括接口和实现类两个层次。在接口层面,主要有`List`、`Set`和`Queue`三大接口...

    java集合框架图

    通过使用集合框架,开发人员可以轻松地管理不同类型的数据集,并且能够利用Java集合框架提供的高效算法进行数据处理。 在Java集合框架中,主要有六种核心接口:`Collection`, `Set`, `List`, `Queue`, `Deque`, 和 ...

    Java集合框架常用集合源代码及其实现

    `Queue`接口代表了先进先出(FIFO)的数据结构,`ArrayDeque`和`LinkedList`都可以作为队列使用。`ArrayDeque`是基于数组的双端队列,插入和删除效率高,而`LinkedList`则适合频繁的添加和移除两端元素的情况。 `...

    Java ArrayDeque使用方法详解

    Deque是Java集合框架中的一...这段代码展示了如何使用Java集合框架中的数据结构解决实际问题,以及如何利用ArrayDeque和SortedSet的特性高效地处理数据。在处理大量数据时,选择合适的数据结构可以显著提高程序的性能。

    Java集合面试问题

    根据给定文件的信息,我们可以提炼出以下关于Java集合的关键知识点: ### 1. Java集合概述与常见类 Java集合框架是Java平台的核心组件之一,它为开发者提供了多种数据结构来存储和操作对象集合。Java集合主要包括...

    java技术集合体系图

    例如,Queue接口用于表示先进先出(FIFO)的数据结构,如ArrayDeque和LinkedList;Deque接口扩展了Queue,支持双端操作;SortedSet和NavigableSet接口提供排序功能,常见的实现有TreeSet。 然后,"Map.jpg"可能展示...

    Java集合案例及源代码.rar

    通过学习和实践这个压缩包中的案例,你可以深入了解Java集合框架的使用,掌握如何根据具体需求选择合适的集合类型,以及如何优化代码性能。同时,源代码中的注释可以帮助理解每一步操作的目的和机制,进一步提升编程...

    Java集合框架培训资料

    5. **泛型**:Java集合框架广泛使用泛型,以确保类型安全。通过指定集合元素的类型,可以避免运行时的类型转换错误。 6. **迭代器和foreach循环**:`Iterator`是遍历集合的标准方式,而Java 5引入的增强for循环...

    在java中集合的使用

    - **集合转换**:可以使用Arrays.asList()将数组转换为List,或者使用Collections.addAll()将多个元素一次性添加到集合。 在实际开发中,选择合适的集合类型取决于具体需求。例如,如果需要保持元素插入顺序且不...

    java资料各种集合

    ArrayDeque是Deque接口的一个高效实现,可以作为双端队列使用,支持在两端添加和移除元素。 4. **TreeSet与TreeMap** TreeSet基于红黑树实现,保证了集合的排序性。它提供了高效的查找、添加和删除操作。TreeMap...

Global site tag (gtag.js) - Google Analytics