栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java

文章目录

1. ArrayList

1.1 特点 2. linkedList

2.1 用法

2.1.1 创建方式2.1.2 Queue接口定义2.1.3 Queue举例2.1.4 Deque举例 2.2 特点 3. ArrayDeque

3.1 实例变量

3.2 原理3.2.1 循环数组3.2.2 构造方法3.2.3 头部添加和删除 3.3 特点

1. ArrayList

随机访问效率很高,但插入和删除性能比较低

1.1 特点

2. linkedList

linkedList同样实现了List接口,它的特点与ArrayList正好相反。同时还实现了Deque和Queue接口。可以按照队列、栈和双端队列的方式进行操作。

2.1 用法 2.1.1 创建方式
List list = new linkedList<> ();
List list1 = new linkedList<> (Arrays.asList (new String []{"a","b","c"}));

2.1.2 Queue接口定义
   public interface Queue extends Collection{
        boolean add(E e);//在尾部添加元素,队列满时抛异常
        boolean offer(E e);//在尾部添加元素,队列满时返回false
        E remove();//删除头部元素,队列空时抛异常
        E poll();//删除头部元素,队列空时返回null
        E element();//查看头部元素,队列空时抛异常
        E peek();//查看头部元素,队列空时返回null
    }
2.1.3 Queue举例
    Queue queue = new linkedList<> ();
    queue.offer("a");
    queue.offer("b");
    queue.offer("c");
    while(queue.peek()!=null){
        System.out.println (queue.poll ());
    }
        Queue q = new linkedList<>();

        for (int i=0;i<5;i++){
            q.offer(i);
        }
        while (!q.isEmpty()) System.out.println(q.poll());
    }
2.1.4 Deque举例
    Deque stack = new linkedList<> ();
    stack.offer("a");
    stack.offer("b");
    stack.offer("c");
    while(stack.peek()!=null){
        System.out.println (stack.pop ());
    }
2.2 特点

3. ArrayDeque

3.1 实例变量
private transient E[] elements;
private transient int head;
private transient int tail;
3.2 原理

ArrayDeque的高效来源于head和tail这两个变量。

3.2.1 循环数组

对于一般的数组,比如arr ,第一个元素是arr[0],最后一个元素为arr[arr.length-1]。
但是ArrayDeque中的数组,他是一个逻辑上的循环数组,有head和tail这两个变量决定
a.当head=tail,则数组为空,长度为0;
b.当head c.当tail d.当0

3.2.2 构造方法
public ArrayDeque(){
    elements = (E[])new Object[16];
}

分配了一个长度为16的数组。如果有参数numElements,代码为

public ArrayDeque(int numElements){
    allocateElements(numElements);
}
    public ArrayDeque(Collection c ){
        allocteElements(c.size ());
        addAll(c);
    }
3.2.3 头部添加和删除

关键方法

addFirst();
removeFirst();//removeFirst()主要调用了pollFirst()方法
3.3 特点

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/731829.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号