LinkedList模拟栈数据结构的集合,并测试

qiwei-bigdata / 2024-08-12 / 原文

package com.shujia.day13;

import java.util.LinkedList;

/*
    LinkedList
    请用LinkedList模拟栈数据结构的集合,并测试
    栈:先进后出

    题目的要求是:自己创建一个类,将LinkedList作为成员变量,将来创建自己的类对象,使用自己的方法,但是底层用的是LinkedList中的方法

 */
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());
        }



    }
}

定义一个MyStack类

package com.shujia.day13;

import java.util.LinkedList;

public class MyStack {
    private LinkedList linkedList;

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

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

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

    public Object getObject(){
//        return linkedList.getFirst();
        return linkedList.removeFirst();
    }


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