分析题目可知:
1.栈(stack)内存的特点:
数据先入后出,永远操作的都是stack的栈顶数据.
2.存储的工具(集合):
根据集合实现类的特点,选择LinkedList集合.
LInkedList集合特点:增删快,查询慢.
stack内存的工作就相当于集合工具对数据的增删.
根据分析编写程序:
1 package com.stack.demo; 2 3 import java.util.LinkedList; 4 5 public class Stack_LinkedList { 6 public static void main(String[] args) { 7 //测试 8 //创建一个栈对象 9 LinkedList<Object> stack = Stack_LinkedList.stack; 10 11 //压栈(先入后出) 12 stack.push("java");//第一个进栈 13 stack.push("javascript");//第二个进栈 14 stack.push("html");//第三个进栈 15 stack.push("css");//第四个进栈(处于栈顶) 16 //查看栈中元素 17 System.out.println(stack); 18 19 //弹栈 20 stack.pop();//栈顶元素出栈 21 //查看剩余元素,如果"css"不存在,则模拟成功 22 System.out.println(stack); 23 24 } 25 //创建LinkedList 26 private static LinkedList<Object> stack = new LinkedList<>(); 27 28 //压栈 29 public static<T> void push(T t) { 30 stack.addFirst(t); 31 } 32 33 //弹栈 34 public static<T> void pop() { 35 stack.removeFirst(); 36 } 37 }
程序运行结果:
1 [css, html, javascript, java] 2 [html, javascript, java]