以下内容基于jdk1.7.0_79源码;什么是LinkedListList接口的链表实现,并提供了一些队列,栈,双端队列操作的方法;LinkedList补充说明与ArrayList对比,LinkedList插入和删除操作更加高效,随机访问速度慢;可以作为栈、队列、双端队列数据结构 ...
以下内容基于jdk1.7.0_79源码;
什么是LinkedList
List接口的链表实现,并提供了一些队列,栈,双端队列操作的方法;
LinkedList补充说明
与ArrayList对比,LinkedList插入和删除操作更加高效,随机访问速度慢;
可以作为栈、队列、双端队列数据结构使用;
非同步,线程不安全;
与ArrayList、Vector一样,LinkedList的内部迭代器存在“快速失败行为”;
支持null元素、有顺序、元素可以重复;
LinkedList继承的类以及实现的接口
以上接口和类中,关于Iterable接口、Collection接口、List接口、 Cloneable、 java.io.Serializable接口、AbstractCollection类、AbstractList类的相关说明,在介绍ArrayList的时候,已经有了个大概说明,这里将主要了解下Queue接口、Deque接口、AbstractSequentialList类以及LinkedList类;
Queue接口
队列接口,定义了一些队列的基本操作,
注意使用时优先选择以下蓝色字体方法(offer、poll、peek),队列通常不允许null元素,因为我们通常调用poll方法是否返回null来判断队列是否为空,但是LinkedList是允许null元素的,所以,在使用LinkedList最为队列的实现时,不应该将null元素插入队列;
boolean add(E e);
将对象e插入队列尾部,成功返回true,失败(没有空间)抛出异常IllegalStateException;
boolean offer(E e);
将对象e插入队列尾部,成功返回true,失败(没有空间)返回false;
E remove();
获取并移除队列头部元素,如果队列为空,抛出NoSuchElementException异常;
E poll();
获取并移除队列头部元素,如果队列为空,返回null;
E element();
获取但不移除队列头部元素,如果队列为空,抛出NoSuchElementException异常;
E peek();
获取但不移除队列头部元素,如果队列为空,返回null;
举个简单的例子,基于LinkedList实现的队列,代码如下:
package com.pichen.basis.col;import java.util.LinkedList;import java.util.Queue;public class LinkListTest { public static void main(String[] args) { Queue<Integer> linkedListQueue = new LinkedList<Integer>(); //入队 linkedListQueue.offer(3); linkedListQueue.offer(4); linkedListQueue.offer(2); linkedListQueue.offer(1); //出队 Integer tmp; while((tmp = linkedListQueue.poll()) != null){ System.out.println(tmp); } System.out.println(linkedListQueue.peek()); }}
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:【JAVA集合】LinkedList
关键词:JAVA
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。