码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-10-05 11:40:59      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

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 }

运行效果如下:

技术分享

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

标签:

原文地址:http://www.cnblogs.com/hebao0514/p/4855483.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!