LinkedList LinkedList底层是使用链表结构实现的,线程不安全,特点:查询速度慢,增删速度快。(有序,可重复)
1、LinkedList 集合简介
1.1、LinkedList 是一个继承于AbstractSequentialList 的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。
1.2、LinkedList 实现 List 接口,能进行队列操作。
1.3、LinkedList 实现 Deque 接口,即能将 LinkedList 当作双端队列使用。
1.4、ArrayList底层是由数组支持,而LinkedList 是由双向链表实现的,其中的每个对象包含数据的同时还包含指向链表中前一个与后一个元素的引用。
2、LinkedList 集合常用特有方法
2.1、方法介绍
addFirst(E e):把元素添加到集合的首位置
addLast(E e) :把元素添加到集合的末尾处
getFirst() :获取集合中的首位元素
getLast() :获取集合中的末尾元素
removeFirst():删除集合中的首位元素并返回删除的元素
removeLast():删除集合中的末尾元素并返回删除的元素
descendingIterator():LinkedList 集合的特有迭代器: 返回逆序的迭代器对象
eg:
import java.util.Iterator;
import java.util.LinkedList;
public class linklist {
public static void main(String[] arg)
{
LinkedList<String> test=new LinkedList<String>();
test.add("第一");
test.add("第二");
test.add("第三");
System.out.println(test);
test.addFirst("第零"); //把元素添加到集合首位
System.out.println(test);
test.addLast("第四"); //把元素添加到集合末尾
System.out.println(test);
System.out.println("获取集合中的首位元素:"+test.getFirst());
System.out.println(test);
System.out.println("获取集合中的末位元素:"+test.getLast());
System.out.println(test);
System.out.println("删除集合中的首位元素并返回删除的元素:"+test.removeFirst());
System.out.println(test);
System.out.println("删除集合元素中的末位元素并返回删除元素:"+test.removeLast());
System.out.println(test);
Iterator<String> test1=test.descendingIterator();
System.out.println(test1);
while(test1.hasNext()) //hasNext():获取下一位的状态,如果存在下一位,则返回true。
{
System.out.println(test1.next()+","); //next():返回下一位的值。
}
}
}
2.2.、栈:主要用于堆栈的数据结构的存储方式 。 堆栈数据结构存储的特点:先进后出,后进先出
push(E e) :将指定的元素插入指定集合的开头处
pop() :移除集合中的第一个元素,并返回移除的元素
eg:
LinkedList<String> test=new LinkedList<String>();
test.add("第一");
test.add("第二");
test.add("第三");
test.push("栈的开头"); //push(E e) :将指定的元素插入指定集合的开头处--此时把LinkedList对象当栈处理。
System.out.println(test);
System.out.println("移除集合中的第一个元素,并返回移除的元素:"+test.pop());
System.out.println(test);
2.3、队列:主要为了让我们可以使用LinkedList模拟列队数据结构存储方式。 队列数据结构存储的特点:先进先出,后进后出
offer(E e) :将指定元素插入到集合中的末尾处
poll() :删除并返回指定集合中的第一个元素
eg:
LinkedList<String> test=new LinkedList<String>();
test.add("第一");
test.add("第二");
test.add("第三");
test.offer("队列的头"); //offer(E e) :将指定元素插入到集合中的末尾处--此时把LinkedList对象当队列处理。
System.out.println(test);
System.out.println("删除集合的第一个元素,并返回删除元素:"+test.poll());
System.out.println(test);