public class LinkedList<E> extends AbstractSequentialList<E>implements List<E>, Deque<E>, Cloneable, Serializable
List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。
此类实现 Deque 接口,为 add、poll 提供先进先出队列操作,以及其他堆栈和双端队列操作。
所有操作都是按照双重链接列表的需要执行的。在列表中编索引的操作将从开头或结尾遍历列表(从靠近指定索引的一端)。
package newFeatures8;
import java.util.LinkedList;
/*
LinkedList:特有方法:
addFirst();
addLast();
getFirst();
getLast();
获取元素,但不删除元素。如果集合中没有元素,会出现NoSuchElementException
removeFirst();
removeLast();
获取元素,但是元素被删除。如果集合中没有元素,会出现NoSuchElementException
在JDK1.6出现了替代方法。
offerFirst();//替代了addFirst
offerLast();//替代了addLast
peekFirst();//替代了getFirst
peekLast();//替代了getLast
获取元素,但不删除元素。如果集合中没有元素,会返回null。
pollFirst();//替代了removeFirst
pollLast();//替代了removeLast
获取元素,但是元素被删除。如果集合中没有元素,会返回null。
*/
public class LinkedListDemo {
public static void main(String[] args) {
LinkedList<String> link = new LinkedList<>();
link.addLast("java01");
link.addLast("java02");
link.addLast("java03");
link.addLast("java04");
// sop(link);
// sop(link.getFirst());
// sop(link.getFirst());
// sop(link.getLast());
// sop(link.removeFirst());
// sop(link.removeFirst());
// sop("size="+link.size());
while (!link.isEmpty()) {
sop(link.removeLast());
}
}
public static void sop(Object obj) {
System.out.println(obj);
}
}