zoukankan      html  css  js  c++  java
  • 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 }

    运行效果如下:

  • 相关阅读:
    防止表单重复提交的几种策略
    Linux模块
    ASP.Net MVC3 图片上传详解(form.js,bootstrap)
    在ASP.NET MVC3 中利用Jsonp跨域访问
    C# 利用反射动态创建对象——带参数的构造函数和String类型
    第一章 CLR 的执行模型
    Linux Shell脚本攻略 读书笔记
    使用MVC4,Ninject,EF,Moq,构建一个真实的应用电子商务SportsStore
    验证码识别的一些总结及相关代码
    使用DateTime的ParseExact方法实现特殊日期时间的方法详解(转)
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4855483.html
Copyright © 2011-2022 走看看