Java基础知识强化之集合框架笔记29:使用LinkedList实现栈数据结构的集合代码(面试题)

1. 请用LinkedList模拟栈数据结构的集合,并测试:

  题目的意思是:
       你自己的定义一个集合类,在这个集合类内部可以使用LinkedList模拟,使用LinkedList功能方法封装成自己的方法

 

2. 代码解析:

(1)定义自己集合类MyStack,模拟栈数据结构( 先进后出

 1 package cn.itcast_05;
 2 
 3 import java.util.LinkedList;
 4 
 5 /**
 6  * 自定义的栈集合
 7  * 
 8  * @author Mr He
 9  * @version V1.0
10  */
11 public class MyStack {
12     private LinkedList link;
13 
14     public MyStack() {
15         link = new LinkedList();
16     }
17 
18     public void add(Object obj) { // 底层调用的是LinkedList的addFirst()方法,每次都在起始位置添加
19         link.addFirst(obj);
20     }
21 
22     public Object get() {  //底层调用的是LinkedList的removeFirst()方法,取出数据(弹栈),原来的集合中不再含有这个元素。
23         // return link.getFirst();
24         return link.removeFirst();
25     }
26 
27     public boolean isEmpty() {//底层调用的是LinkedList的isEmpty()方法,判断集合内部数据是否为空
28         return link.isEmpty();
29     }
30 }

(2)MyStack的测试:

 1 package cn.itcast_05;
 2 
 3 /*
 4  * MyStack的测试
 5  */
 6 public class MyStackDemo {
 7     public static void main(String[] args) {
 8         // 创建集合对象
 9         MyStack ms = new MyStack();
10 
11         // 添加元素
12         ms.add("hello");
13         ms.add("world");
14         ms.add("java");
15 
16         // System.out.println(ms.get());
17         // System.out.println(ms.get());
18         // System.out.println(ms.get());
19       // NoSuchElementException  栈数据结构获取的时候,它是弹栈(出栈),原来集合中数据会一个个清除(先进后出),遍历的时候要防止集合为空,加判断
20         // System.out.println(ms.get());
21         
22         while(!ms.isEmpty()){
23             System.out.println(ms.get());
24         }
25     }
26 }

运行效果如下:

posted on 2015-10-05 11:12  鸿钧老祖  阅读(236)  评论(0编辑  收藏  举报

导航