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 }

    运行效果如下:

  • 相关阅读:
    查看线程
    shiro+多tomcat+redis实现session共享
    win11系统设置笔记本合盖上不休眠
    nvm切换node版本出现乱码 exit status 1:
    nvm安装vuecli
    SQL Server Management 2012 启动错误及解决:Cannot find one or more componets
    SQL Server 2012 连接 Oracle 11gR2 Database
    SQL Server 数据库跨区域时间问题
    SSIS 同步不同数据库的不同两张表
    Reporting Service 不能发送订阅报表的问题
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4855483.html
Copyright © 2011-2022 走看看