LinkedList适合用于栈和队列的实现,与ArrayList的最大区别是,如果操作多是插入和删除,那么,请使用LinkedList而不要用ArrayList。同样,LinkedList实现了很多的方法:addFirst(),addLast(),getFirst(),getLast(),removeFirst(),removeLast()等等。
下面用一个简单的例子来实现队列的先进先出功能吧~
首先,定义一个类,实现队列的pop(),push()等功能:
import java.util.*;
public class StackString{
private LinkedList<String> linkedlist;
public StackString(){
linkedlist=new LinkedList<String>();
}
public void push(String name){
linkedlist.addFirst(name);
}
public String top(){
return linkedlist.getFirst();
}
public String pop(){
return linkedlist.removeLast();
}
public boolean isEmpty(){
return linkedlist.isEmpty();
}
}
然后对上面的定义进行检验:
import java.util.*;
public class StackStringDemo{
public static void main(String[] args){
StackString stackstring=new StackString();
Scanner scanner=new Scanner(System.in);
System.out.println("输入quit结束");
while (true){
String input=scanner.next();
if (input.equals("quit"))
break;
stackstring.push(input);
}
while(!stackstring.isEmpty()){
System.out.println(stackstring.pop());
}
}
}
编译运行的时候,结果会和输入的顺序相同。
当然,之后我们也就可以定义栈的实现。