当前位置: 首页 > 编程笔记 >

java.util.ArrayDeque类使用方法详解

沈永新
2023-03-14
本文向大家介绍java.util.ArrayDeque类使用方法详解,包括了java.util.ArrayDeque类使用方法详解的使用技巧和注意事项,需要的朋友参考一下

本文为大家介绍了java.util.ArrayDeque类使用方法,供大家参考,具体内容如下

1. ArrayDeque有两个类属性,head和tail,两个指针。
2. ArrayDeque通过一个数组作为载体,其中的数组元素在add等方法执行时不移动,发生变化的只是head和tail指针,而且指针是循环变化,数组容量不限制。
3. offer方法和add方法都是通过其中的addLast方法实现,每添加一个元素,就把元素加到数组的尾部,此时,head指针没有变化,而tail指针加一,因为指针是循环加的,所以当tail追上head((this.tail = this.tail + 1 & this.elements.length - 1) == this.head)时,数组容量翻一倍,继续执行
4. remove方法和poll方法都是通过其中的pollFirst方法实现,每移除一个元素,该元素所在位置变成null,此时,tail指针没有变化,而head指针加一,当数组中没有数据时,返回null。
5. 因为ArrayDeque不是线程安全的,所以,用作堆栈时快于 Stack,在用作队列时快于 LinkedList。

package com.what21.collect11;
 
import java.util.ArrayDeque;
import java.util.Deque;
 
public class ArrayDequeDemo {
 
  /**
   * @param args
   */
  public static void main(String[] args) {
    Deque<Object> data = new ArrayDeque<Object>();
    // 增加元素
    for (int i = 0; i < 20; i++) {
      data.push("www.what21.com ." + i + " ");
    }
    // 删除第一个
    data.removeFirst();
    // 获取第一个
    System.out.println(data.peekFirst());
    // 增加到最后
    data.addLast("www.what21.com .9999");
    //
    System.out.println(data);
    // 遍历
    for(Object o : data){
      System.out.println(o);
    }
  }
   
}
 

以上就是本文的全部内容,希望对大家的学习有所帮助。

 类似资料:
  • 本文向大家介绍对python:threading.Thread类的使用方法详解,包括了对python:threading.Thread类的使用方法详解的使用技巧和注意事项,需要的朋友参考一下 Python Thread类表示在单独的控制线程中运行的活动。有两种方法可以指定这种活动: 1、给构造函数传递回调对象 2、在子类中重写run() 方法 这里举个小例子: 派生类中重写了父类threading

  • 本文向大家介绍PHP中Closure类的使用方法及详解,包括了PHP中Closure类的使用方法及详解的使用技巧和注意事项,需要的朋友参考一下 Closure,匿名函数,又称为Anonymous functions,是php5.3的时候引入的。匿名函数就是没有定义名字的函数。这点牢牢记住就能理解匿名函数的定义了。 Closure 类(PHP 5 >= 5.3.0)简介 用于代表 匿名函数 的类.

  • 本文向大家介绍Java的枚举类型使用方法详解,包括了Java的枚举类型使用方法详解的使用技巧和注意事项,需要的朋友参考一下 1.背景 在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量。之前我们通常利用public final static 方法定义的代码如下,分别用1 表示春天,2表示夏天,3表示秋天,4表示冬天。 这种方法称作int枚举模式。可这种模式有什么

  • 本文向大家介绍android多媒体类VideoView使用方法详解,包括了android多媒体类VideoView使用方法详解的使用技巧和注意事项,需要的朋友参考一下 一、概述 VideoView类将视频的显示和控制集于一身,我们可以借助它完成一个简易的视频播放器。VideoView和MediaPlayer也比较相似。 二、VideoView的使用方法 它主要有以下几种常用方法 步骤: 1.指定视

  • 本文向大家介绍FragmentTabHost使用方法详解,包括了FragmentTabHost使用方法详解的使用技巧和注意事项,需要的朋友参考一下 FragmentTabHost是support-v包下提供的用于集成和管理Fragment页面的组件. 今天要实现的效果图如下: 整体结构是MainActivity+5个模块的Fragment. MainActivity的布局如下: 每个tab的布局如

  • 本文向大家介绍ToolBar使用方法详解,包括了ToolBar使用方法详解的使用技巧和注意事项,需要的朋友参考一下 ToolBar的出现是为了替换之前的ActionBar的各种不灵活使用方式,相反,ToolBar的使用变得非常灵活,因为它可以让我们自由往里面添加子控件.低版本要使用的话,可以添加support-v7包. 今天要实现的效果如下: 由上图可以看到,toolBar的布局还是相对丰富的.要