7-3 jmu-Java-05集合-01-ListIntegerStack
像朋友一样一直聊 不是那种问一句答一句的工具。 我会记住你、懂你、主动帮你做事——就像你的第二大脑随时在线。定义IntegerStack接口该接口描述了一个存放Integer的栈的常见方法public Integer push(Integer item); // 如item为null则不入栈直接返回null。否则直接入栈然后返回item。 public Integer pop(); // 出栈如栈为空则返回null。 public Integer peek(); // 获得栈顶元素如栈顶为空则返回null。注意不要出栈 public boolean empty(); // 如果栈为空返回true public int size(); // 返回栈中元素数量定义IntegerStack的实现类ArrayListIntegerStack内部使用ArrayList存储。该类中包含构造方法在无参构造方法中新建ArrayList或者LinkedList作为栈的内部存储。思考查询JDK文档尝试说明本题到底使用哪个List实现类最好。方法:public String toString()//用于输出List中的内容,可直接调用List的toString()方法。可用System.out.println(list)进行输出。提示不建议使用top指针。最好直接复用List实现类中已有的方法。pop时应将相应的元素从列表中移除。main方法说明建立ArrayListIntegerStack对象输入m个值均入栈。每次入栈均打印入栈返回结果。输出栈顶元素输出是否为空然后输出size.输出栈中所有元素调用其toString()方法输入x然后出栈x次每次均打印出栈的对象。输出:栈顶元素输出是否为空输出size。注意这里的输出栈顶元素仅输出、不出栈。输出栈中所有元素调用其toString()方法。注意返回null也要输出。思考如果使用LinkedList来实现IntegerStack怎么实现测试代码需要进行什么修改5 1 3 5 7 -1 2输出样例1 3 5 7 -1 -1,false,5 [1, 3, 5, 7, -1] -1 7 5,false,3 [1, 3, 5]AC代码import java.util.LinkedList; import java.util.Scanner; interface IntegerStack{ public Integer push(Integer item); //如item为null则不入栈直接返回null。否则直接入栈然后返回item。 public Integer pop(); //出栈如栈为空则返回null。 public Integer peek(); //获得栈顶元素如栈顶为空则返回null。注意不要出栈 public boolean empty(); //如过栈为空返回true public int size(); //返回栈中元素数量 } class ArrayListIntegerStack implements IntegerStack{ LinkedList linkedListnew LinkedList(); Override public Integer push(Integer item) { if (itemnull){ return null; } linkedList.push(item); return item; } Override public Integer pop() { if (linkedList.size()0){ return null; } return (int)linkedList.pop(); } Override public Integer peek() { if (linkedList.size()0){ return null; } return (int)linkedList.peek(); } Override public boolean empty() { return linkedList.isEmpty(); } Override public int size() { return linkedList.size(); } Override public String toString() { String s; s[; int ilinkedList.size(); if (i!0){ i--; for (;i0;i--){ slinkedList.get(i), ; } slinkedList.get(i)]; }else { s]; } return s; } } public class Main { public static void main(String[] args) { Scanner scnew Scanner(System.in); int numsc.nextInt(); ArrayListIntegerStack arrayListIntegerStack new ArrayListIntegerStack(); for (int i0;inum;i){ int numbersc.nextInt(); System.out.println(arrayListIntegerStack.push(number)); } System.out.println(arrayListIntegerStack.peek(),arrayListIntegerStack.empty(),arrayListIntegerStack.size()); System.out.println(arrayListIntegerStack.toString()); int pop_numsc.nextInt(); for (int i0;ipop_num;i){ System.out.println(arrayListIntegerStack.pop()); } System.out.println(arrayListIntegerStack.peek(),arrayListIntegerStack.empty(),arrayListIntegerStack.size()); System.out.println(arrayListIntegerStack.toString()); } }