A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

上干货~

需求,
我创建 一个方法类, 这个类是  栈  类,  创建对象的时候, 直接 创建 栈 这个类,然后 调用其中的 in ,out 等方法,
更符合我们 学习JAVA 的 面向对象, 指挥对象搞事情
-------------------------------------------------------------------------------------------------------手动分割线.
栈类    代码区.


import java.util.LinkedList;

public class 栈 {
       
        LinkedList list = new LinkedList();
        /*
         * 模拟进栈
         * */
        public void in(Object obj) {
                list.add(obj);
        }
       
       
        /*
         *
         * 模拟出栈
         */
        public Object out() {
               
                return list.removeLast();
        }
       
        /*
         * 模拟是否为空
         * */
       
        public boolean isEmpty(){
                return list.isEmpty();
        }
       
        //Iterator it = list.iterator();
         
}

-------------------------------------------------------------------------------------------------手动分割线.
测试类  代码区.
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;

public class 模拟栈_队列 {
        public static void main(String[] args) {
                栈 z1 = new 栈();                                                        //创建栈对象
               
                z1.in("a");
                z1.in("b");                                                                //元素进栈
                z1.in("c");
                z1.in("d");
                z1.in("e");
               
                while(!z1.isEmpty()) {                                        //当栈不是空的时候,弹栈
                        System.out.print(z1.out()+"  此时栈是空的吗?");
                        System.out.println(z1.isEmpty());
                }
               
        }
}

-------------------------------------------------------------------------------------------------手动分割线

总结下,
我使用到了链表集合,
它像一个链子一样, 我就可以模拟   方法 的进栈  和弹栈了.
存 的时候我从后往前进入.
输出的时候我从后面往前面拿,
in out 两个方法,就是在模拟 方法的进栈和弹栈.
然后判断他是否为空, 不是空的, 就证明我栈中还有方法没有弹栈,  
我就继续弹栈就行了,

这个就是使用到面向对象 这种思想, 我把   链表集合  封装了,
让你看不到我是如何 把后输入的内容先 输出,
模拟 出 方法的 进栈 和弹栈.
That is all.

1 个回复

倒序浏览
数据的底层还是在 创建 LinkedList ,然后对他进行操作,
但是我把它给封装起来了, 让你看不到,
好气啊....你只能默默的看着我  创建了一个 栈 的对象,
好屌啊.......
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马