需求:请用LinkedList模拟栈数据结构的集合,并测试
题目的意思是:
你自己的定义一个集合类,在这个集合类内部可以使用LinkedList模拟。
定义一个类叫MyStack代码如下:
package cn.itcast_05; import java.util.LinkedList; /**
* 自定义的栈集合
*
* @author 风清扬
* @version V1.0
*/
public class MyStack {
private LinkedList link;//定义一个LinkedList类型的变量 link,定义引用类型的变量 public MyStack() {
link = new LinkedList();//外界一创建MyStack的对象就执行这里的语句。在底层创建产生LinkedList对象即link对象。
} public void add(Object obj) {
link.addFirst(obj);//外界调用这里,底层实际上是做addFirst添加。LinkedList类下面的方法:public void addFirst(E e)将指定元素插入此列表的开头。
} public Object get() {
return link.removeFirst();
//LinkedList类下面的方法:public Object removeFirst()移除并(返回)此列表的第一个元素。返回的是object类型的
} public boolean isEmpty() {//LinkedList类下面的方法:boolean isEmpty()如果列表不包含元素,则返回 true。
return link.isEmpty();
}
}
而我们自定一的类可以直接使用了。代码写了出来如下:
package cn.itcast_05; /*
* MyStack的测试
* public void addFirst(E e)将指定元素插入此列表的开头。
* public E removeFirst()移除并(返回)此列表的第一个元素。
* LinkedList的这两个方法与桟有关
*
*/
public class MyStackDemo {
public static void main(String[] args) {
// 创建集合对象
MyStack ms = new MyStack(); // 添加元素
ms.add("hello");
ms.add("world");
ms.add("java"); while(!ms.isEmpty()){
String s = (String) ms.get();
System.out.println(s);//字符串
}
}
}