LinkedList : 请用LinkedList模拟栈数据结构的集合,并测试 栈:先进后出 题目的要求是:自己创建一个类,将LinkedList作为成员变量,将来创建自己的类对象

创建两个类,一个是MyStack方法类,一个是链表测试类LinkedList1

MyStack方法类:

注意在增加的方法中,要始终把添加的元素添加在第一位,模仿进栈,在提取元素的时候,记得用linkedList.removeFist()方法,这样可以始终提取第一个(也就是进栈的最后一个元素),模仿出栈功能,千万不能用getFirst()方法,因为等到后面测试类循环遍历集合,提元素的时候,会重复提取第一个元素,用removeFirst()方法:可以(提取)删除第一个,第二个就是第一个,可以提取不重复的,循环遍历的时候,正好模拟出栈

import java.util.LinkedList;

public class MyStack {
    private LinkedList linkedList;

    MyStack(){
        linkedList = new LinkedList();
    }

    public void jiaAdd(Object obj){
        linkedList.addFirst(obj);
    }

    public int stackSize(){
        return linkedList.size();
    }

    public Object getObject(){
//        return linkedList.getFirst();
        return linkedList.removeFirst();//不能写成getFirst,否则一直拿第一个,删除了一个,下一个就是第一个
    }


    @Override
    public String toString() {
        return "MyStack{" +
                "linkedList=" + linkedList +
                '}';
    }
}

LinkedList1测试类:(for循环遍历,提取元素)

public class LinkedListTest1 {
    public static void main(String[] args) {
//        LinkedList list1 = new LinkedList();
//
//        list1.add("hello");
//        list1.add("world");
//        list1.add("java");
//        list1.add("hadoop");
//        System.out.println("list1: " + list1);
//
//        System.out.println("----------------------------------");
//        for (int i = list1.size() - 1; i >= 0; i--) {
//            System.out.println(list1.remove(i));
//        }

        /*
            如果按照上面的做法解题,0分。
         */
        MyStack myStack = new MyStack();
        myStack.shujiaAdd("hello");
        myStack.shujiaAdd("world");
        myStack.shujiaAdd("java");
        myStack.shujiaAdd("hadoop");
        System.out.println(myStack);
        System.out.println("===========================");

        for (int i = myStack.stackSize() - 1; i >= 0; i--) {
            System.out.println(myStack.getObject());
        }



    }
}

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的K8409

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值