一. LinkedList特有方法
//1. 添加方法
boolean addFirst(Object o);//在列表开头插入指定元素
boolean allLast(Object o);//在列表结尾插入指定元素
//2. 获取方法
Object getFirst();//返回列表中的第一个元素,但不删除元素
Object getLast();//返回列表中的最后一个元素,但不删除元素
//如果集合中没有元素,会出现NoSuchElementException异常
//3. 删除元素
Object removeFirst();//从列表中删除并返回第一个元素
Object removeLast();//从列表中删除并返回最后一个元素
//如果集合中没有元素,会出现NoSuchElementException异常
在JDK1.6出现了替代方法
//1. 添加方法
boolean offerFirst(Object o);//在列表开头插入指定元素
boolean offerLast(Object o);//在列表结尾插入指定元素
//2. 获取方法
Object peekFirst();//返回列表中的第一个元素,但不删除元素
Object peekLast();//返回列表中的最后一个元素,但不删除元素
//如果集合中没有元素,则返回null
//3. 删除元素
Object pollFirst();//从列表中删除并返回第一个元素
Object pollLast();//从列表中删除并返回最后一个元素
//如果集合中没有元素,则返回null
二. LinkedList练习
使用LinkedList模拟一个堆栈或者队列数据结构
堆栈:先进后出
队列:先进先出
1. 模拟队列
import java.util.*;
class queue{
private LinkedList link;
queue(){
link=new LinkedList();
}
public void myAdd(Object obj){
link.addFirst(obj);
}
public Object myGet(){
return link.removeLast();//先进先出
}
public boolean isNull(){
return link.isEmpty();
}
}
class LinkedListTest{
public static void main(String[] args){
queue q=new queue();
q.myAdd("java01");
q.myAdd("java02");
q.myAdd("java03");
q.myAdd("java04");
while(!q.isNull()){
System.out.println(q.myGet());
}
}
}
运行结果是:
2. 模拟堆栈
import java.util.*;
class stack{
private LinkedList link;
stack(){
link=new LinkedList();
}
public void myAdd(Object obj){
link.addFirst(obj);
}
public Object myGet(){
return link.removeFirst();//改动此处,变成先进后出
}
public boolean isNull(){
return link.isEmpty();
}
}
class LinkedListTest{
public static void main(String[] args){
stack s=new stack();
s.myAdd("java01");
s.myAdd("java02");
s.myAdd("java03");
s.myAdd("java04");
while(!s.isNull()){
System.out.println(s.myGet());
}
}
}
运行结果是: