您现在的位置是:首页 > 编程 > 

Java栈Stack的使用

2025-07-20 21:49:15
Java栈Stack的使用 简介:栈是在现实工程项目中和算法比赛中最常用的数据结构之一,Java内置Stack数据结构,本文旨在用最简洁和快速的方式教会大家使用Stack。从一个题目入手 代码语言:javascript代码运行次数:0运行复制/*这是一个模拟模拟栈的题目*/ import java.util.*; import java.io.*; public class Main {

Java栈Stack的使用

简介:栈是在现实工程项目中和算法比赛中最常用的数据结构之一,Java内置Stack数据结构,本文旨在用最简洁和快速的方式教会大家使用Stack。

从一个题目入手

代码语言:javascript代码运行次数:0运行复制
/*这是一个模拟模拟栈的题目*/
import java.util.*;
import java.io.*;

public class Main
{
    public static void main(String [] args) throws Exception
    {
        Stack<Integer>stack = new Stack<Integer>();
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(reader.readLine());
        while (n -- > 0)
        {
            String [] strs = reader.readLine().split(" ");
            if (strs[0].equals("push"))
            {
                int x = Integer.parseInt(strs[1]);
                // println("push");
                stack.push(x);
            }
            else if (strs[0].equals("pop"))
            {
                // println("pop");
                stack.pop();
            }
            else if (strs[0].equals("query")) 
            {
                // println("query");
                println(stack.peek());
            }
            else 
            {
                // println("empty");
                if (()) println("YES");
                else println("O");
            }
        }
    }
}

声明方式

代码语言:javascript代码运行次数:0运行复制
Stack<Integer>stack = new Stack<Integer>();  

常用方法

代码语言:javascript代码运行次数:0运行复制
stack.push(x); // 往栈顶存放一个元素
代码语言:javascript代码运行次数:0运行复制
stack.peek(); // 获取栈顶元素 但不把栈顶元素去掉
代码语言:javascript代码运行次数:0运行复制
stack.pop(); // 把栈顶元素出栈 并且返回这个元素 这个是和c++的pop的区别 c++的不可以返回栈顶元素
代码语言:javascript代码运行次数:0运行复制
stack.size(); // 获取栈的大小 这个和c++的一样 其他的STL容器获取大小也是这个
代码语言:javascript代码运行次数:0运行复制
stack.isEmpty(); // 判断栈是否为空 返回boolean值 其他的容器也一般用这个方法
代码语言:javascript代码运行次数:0运行复制
stack.search();   // 返回一个对象在此堆栈上的基于1的位置 意思是把栈顶的index作为1 让依次往下递增 以第一个出现的位置为准
代码语言:javascript代码运行次数:0运行复制
import java.util.*;

public class Main{	
	public static void main(String[] args) {
		Stack<Integer> stack = new Stack<Integer>();
		stack.push(1);
		stack.push(2);
		stack.push();
		stack.push(4);
		stack.push(5);
		stack.push(5);
		println("4:" + stack.search(4));
		println("5:" + stack.search(5)); // 5处于栈顶位置
	}
}

运行结果:
4:
5:1

遍历方式

代码语言:javascript代码运行次数:0运行复制
import java.util.*;

public class Main{	
	public static void main(String[] args) {
		Stack<Integer> stack = new Stack<Integer>();
		stack.push(1);
		stack.push(2);
		stack.push();
		stack.push(4);
		stack.push(5);
		/*通过Iterator方式遍历*/
		Iterator<Integer> it = stack.iterator();
		while(it.hat())
		{
			print(() + " ");
		}
		println();
		
		/*通过for-each循环遍历*/
		for(Integer it1:stack)
		{
			printf(it1  + " ");
		}
		
		println();
		/*通过for遍历*/
		for (int i = 0; i < stack.size(); ++ i)
		{
			print(stack.get(i) + " ");
		}
		/*
		 运行结果都是
		 1 2  4 5
		 */
	}
}

注意事项

如果栈为空的话 使用pop()方法或者peek()方法会报错

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2022-10-15,如有侵权请联系 cloudcommunity@tencent 删除数据结构stack遍历java容器

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1160336.html

相关标签:无
上传时间: 2025-07-20 13:30:34
留言与评论(共有 15 条评论)
本站网友 福建省长乐市
7分钟前 发表
原始发表:2022-10-15
本站网友 平安容华
3分钟前 发表
Java内置Stack数据结构
本站网友 traceview
25分钟前 发表
Java栈Stack的使用 简介:栈是在现实工程项目中和算法比赛中最常用的数据结构之一
本站网友 信阳茶叶
4分钟前 发表
从一个题目入手 代码语言:javascript代码运行次数:0运行复制/*这是一个模拟模拟栈的题目*/ import java.util.*; import java.io.*; public class Main { public static void main(String [] args) throws Exception { Stack<Integer>stack = new Stack<Integer>(); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(reader.readLine()); while (n -- > 0) { String [] strs = reader.readLine().split(" "); if (strs[0].equals("push")) { int x = Integer.parseInt(strs[1]); // println("push"); stack.push(x); } else if (strs[0].equals("pop")) { // println("pop"); stack.pop(); } else if (strs[0].equals("query")) { // println("query"); println(stack.peek()); } else { // println("empty"); if (()) println("YES"); else println("O"); } } } }声明方式代码语言:javascript代码运行次数:0运行复制Stack<Integer>stack = new Stack<Integer>(); 常用方法代码语言:javascript代码运行次数:0运行复制stack.push(x); // 往栈顶存放一个元素代码语言:javascript代码运行次数:0运行复制stack.peek(); // 获取栈顶元素 但不把栈顶元素去掉代码语言:javascript代码运行次数:0运行复制stack.pop(); // 把栈顶元素出栈 并且返回这个元素 这个是和c++的pop的区别 c++的不可以返回栈顶元素代码语言:javascript代码运行次数:0运行复制stack.size(); // 获取栈的大小 这个和c++的一样 其他的STL容器获取大小也是这个代码语言:javascript代码运行次数:0运行复制stack.isEmpty(); // 判断栈是否为空 返回boolean值 其他的容器也一般用这个方法代码语言:javascript代码运行次数:0运行复制stack.search(); // 返回一个对象在此堆栈上的基于1的位置 意思是把栈顶的index作为1 让依次往下递增 以第一个出现的位置为准代码语言:javascript代码运行次数:0运行复制import java.util.*; public class Main{ public static void main(String[] args) { Stack<Integer> stack = new Stack<Integer>(); stack.push(1); stack.push(2); stack.push(); stack.push(4); stack.push(5); stack.push(5); println("4
本站网友 产后抑郁症的治疗
5分钟前 发表
Java内置Stack数据结构
本站网友 q1se
1分钟前 发表
" + stack.search(4)); println("5
本站网友 武汉邮电学院
23分钟前 发表
Java栈Stack的使用 简介:栈是在现实工程项目中和算法比赛中最常用的数据结构之一
本站网友 太原264医院
24分钟前 发表
Java内置Stack数据结构
本站网友 宁波儿童公园
2分钟前 发表
" + stack.search(5)); // 5处于栈顶位置 } } 运行结果: 4
本站网友 酒店公寓装修效果图
19分钟前 发表
Java栈Stack的使用 简介:栈是在现实工程项目中和算法比赛中最常用的数据结构之一
本站网友 flyn
11分钟前 发表
Java内置Stack数据结构
本站网友 东莞香市动物园
14分钟前 发表
Java栈Stack的使用 简介:栈是在现实工程项目中和算法比赛中最常用的数据结构之一
本站网友 刘欣宜
24分钟前 发表
分享自作者个人站点/博客
本站网友 如何壮阳补肾
12分钟前 发表
5