为了达到更好的封装效果,应该把使用LinkedLIst的方法进行进栈(list.addLast(obj))、弹栈(list.removeLast())、判断栈是否为空(list.isEmpty())封装到一个类中,然后通过类名进行调用所需要的方法。
创建一个Stack类
package com.soar.list;
import java.util.LinkedList;
@SuppressWarnings("rawtypes")
public class Stack {
private LinkedList list = new LinkedList();
/*
* 模拟进栈方法
*/
public void in(Object obj){
list.addLast(obj);
}
/*
* 模拟出栈方法
*/
public Object out(){
return list.removeLast();
}
/*
* 模拟栈结构是否为空
*/
public boolean isEmpty(){
return list.isEmpty();
}
}
创建一个LinkedLIst类
package com.soar.list;
import java.util.LinkedList;
@SuppressWarnings({ "rawtypes", "unchecked" })
public class Demo4_LinkedList {
/*
* 用LinkedList模拟栈结构
*/
public static void main(String[] args) {
//demo_Stack();
Stack s = new Stack();
s.in("a"); //进栈 a,b,c,d
s.in("b");
s.in("c");
s.in("d");
while(!s.isEmpty()){ //判断栈是否为空
System.out.println(s.out()); //弹栈 d,c,b,a
}
}
private static void demo_Stack() {
LinkedList list = new LinkedList(); //创建集合对象
list.add("a");
list.add("b");
list.add("c");
list.add("d");
/* System.out.println(list.removeLast()); //d
System.out.println(list.removeLast()); //c
System.out.println(list.removeLast()); //b
System.out.println(list.removeLast()); //a
*/
while(!list.isEmpty()){
System.out.println(list.removeLast());
}
}
}