LinkedList的特有方法:
(一)添加方法
addFisrt(E e):将指定元素插入此列表的开头。//参数e可以理解成Object对象,因为列表可以接收任何类型的对象,所以e就是Object对象(传递过程即向上转型)。
addLast(E e):将指定元素插入此列表的结尾。
JDK1.6之后:
offerFirst();
offerLast();//其实前后的用法相同,换了一个名字而已。
(二):获取元素方法(获取过程不删除链表元素):
getFirst();返回此列表的第一个元素。如果链表为空,则抛出NoSuchElementException异常。
getLast();返回此列表的最后一个元素。
JDK1.6之后:
peekFirst();获取链表的第一个元素,如果链表为空则会返回null。
peekLast();
(三):获取元素方法(获取过程删除链表元素):
removeFirst();获取链表的第一个元素,并在链表中删除该元素,如果链表为空则抛出NoSuchElementException异常.
removeLast();
JDK1.6之后:
pollFirst();获取链表的第一个元素,并在链表中删除该元素,如果链表为空则返回null.
pollLast();
具体代码实现:
package collection;
/*
* 用LinkedList模拟队列这一数据结构
*/
import java.util.LinkedList; class Queue{//创建一个容器,对外提供可以使用容器的对象(调用容器中封装的方法)
private LinkedList link;
public Queue(){
link=new LinkedList();
}
public void myAdd(Object obj){
link.offerLast((obj));
}
public Object myGet(){
return link.pollFirst();
}
public boolean isNull(){
return link.isEmpty();
}
}
public class LinkedListTest { /**
* @param args
*/
public static void main(String[] args) { Queue dl=new Queue();
dl.myAdd("abc0");
dl.myAdd("abc1");
dl.myAdd("abc2");
dl.myAdd("abc3");
while(!dl.isNull()){
System.out.println(dl.myGet());
}
} }
总结上面的代码:对外提供容器对象,容器中封装的方法可以实现队列先进先出(FIFO)的需求,调整其中封装的方法,同样可以实现堆栈先进后出这一种数据结构(FILO)。