/*
* 面试题:通过LinkedList模拟栈数据结构
* 要模拟的内容的特点:
* 先进后出。
*
* 通过LinkedList模拟栈数据结构:
* 它的意思是说,你有一个LinkedList可以用,但是,你需要自己定义一个栈集合。
* 对外提供获取和添加功能。
*/
public class LinkedListTest {
public static void main(String[] args) {
// LinkedList link = new LinkedList();
// link.addFirst("hello");
// link.addFirst("world");
// link.addFirst("java");
// Iterator it = link.iterator();
// while (it.hasNext()) {
// String s = (String) it.next();
// System.out.println(s);
// }
// 创建集合对象
MyStack ms = new MyStack();
// 创建并添加元素
ms.add("hello");
ms.add("world");
ms.add("java");
// 获取
// System.out.println(ms.get(0));
// System.out.println(ms.get(1));
// System.out.println(ms.get(2));
// System.out.println(ms.get(3));
for (int x = 0; x < ms.size(); x++) {
String s = (String) ms.get(x);
System.out.println(s);
}
}
}
/*
* 自定义栈集合。
*/
public class MyStack {
private LinkedList link;
public MyStack() {
link = new LinkedList(); //底层调用LinedList方法
}
public void add(Object obj) {
link.addFirst(obj);//底层调用LinedList类First方法
}
public Object get(int index) {
return link.get(index);//底层调用LinkedList类get方法
//根据传入的索引获取该索引出的元素
}
public int size() {
return link.size();
}
} |