7-2 jmu-Java-05集合-01-ArrayListIntegerStack (30分)

2023-11-07 10:58

本文主要是介绍7-2 jmu-Java-05集合-01-ArrayListIntegerStack (30分),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

定义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方法说明

建立ArrayIntegerStack对象
输入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]

import java.util.LinkedList;
import java.util.Scanner;interface IntegerStack{public Integer push(Integer item); public Integer pop();              public Integer peek();             public boolean empty();         public int size();               
}
class ArrayListIntegerStack implements IntegerStack{LinkedList linkedList=new LinkedList();public Integer push(Integer item) {if (item==null){return null;}linkedList.push(item);return item;}public Integer pop() {if (linkedList.size()==0){return null;}return (int)linkedList.pop();}public Integer peek() {if (linkedList.size()==0){return null;}return (int)linkedList.peek();}public boolean empty() {return linkedList.isEmpty();}public int size() {return linkedList.size();}public String toString() {String s="";s+="[";int i=linkedList.size();if (i!=0){i--;for (;i>0;i--){s+=linkedList.get(i)+", ";}s+=linkedList.get(i)+"]";}else {s+="]";}return  s;}
}
public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int num=sc.nextInt();ArrayListIntegerStack arrayListIntegerStack = new ArrayListIntegerStack();for (int i=0;i<num;i++){int number=sc.nextInt();System.out.println(arrayListIntegerStack.push(number));}System.out.println(arrayListIntegerStack.peek()+","+arrayListIntegerStack.empty()+","+arrayListIntegerStack.size());System.out.println(arrayListIntegerStack.toString());int pop_num=sc.nextInt();for (int i=0;i<pop_num;i++){System.out.println(arrayListIntegerStack.pop());}System.out.println(arrayListIntegerStack.peek()+","+arrayListIntegerStack.empty()+","+arrayListIntegerStack.size());System.out.println(arrayListIntegerStack.toString());}
}

这篇关于7-2 jmu-Java-05集合-01-ArrayListIntegerStack (30分)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/363157

相关文章

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

Java中Integer128陷阱

《Java中Integer128陷阱》本文主要介绍了Java中Integer与int的区别及装箱拆箱机制,重点指出-128至127范围内的Integer值会复用缓存对象,导致==比较结果为true,下... 目录一、Integer和int的联系1.1 Integer和int的区别1.2 Integer和in

SpringSecurity整合redission序列化问题小结(最新整理)

《SpringSecurity整合redission序列化问题小结(最新整理)》文章详解SpringSecurity整合Redisson时的序列化问题,指出需排除官方Jackson依赖,通过自定义反序... 目录1. 前言2. Redission配置2.1 RedissonProperties2.2 Red

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

JSONArray在Java中的应用操作实例

《JSONArray在Java中的应用操作实例》JSONArray是org.json库用于处理JSON数组的类,可将Java对象(Map/List)转换为JSON格式,提供增删改查等操作,适用于前后端... 目录1. jsONArray定义与功能1.1 JSONArray概念阐释1.1.1 什么是JSONA

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap