java 关于stack 的语法解析

最近偶然开始对stack进行研究,发现这个还蛮简单的,与类似的链表集合不一样的是,stack可以通过直接new stack()创建。

stack数据存储方式为“后进先出”的方式,例如:

Stack<String> stack = new Stack<String>();
		stack.add("zhangsan");
		stack.add("lisi");
		stack.add("wangwu");
		stack.add("qianliu");
		stack.add("zhaoda");
		int index = stack.search("qianliu");// 寻找对象位置
		int index1 = stack.search("zhaoda");// 寻找对象位置
		System.out.println("位置为:"+index+":"+index1);
		stack.add(3, "孙二娘");

		String first=stack.firstElement();
		System.out.println("first="+first);
		stack.push("王五");
		System.out.println("top="+stack.lastElement());

在stack中,可以发现最后添加的数据“王五”需要通过lastElement方法获取,如果需要采用search获取位置index,那么可以预计位置为1.

stack中对数据已经存在的数据的操作方法都提供了返回参数如:String delete=stack.pop();

stack提供了直接添加入list集合的方法。

下面是对stack中数据的遍历:

Iterator<String> it=stack.iterator();
		while(it.hasNext()){
			String object=it.next();
			System.out.print(object+",");
		}

java支持堆栈中对象元素为null,也可以通过设置setSize(int num)使得数据为null。

最后介绍一下在堆栈中添加list集合:

Stack<String> stack = new Stack<String>();
		stack.add("zhangsan");
		stack.add("lisi");
		stack.add("wangwu");
		stack.add("qianliu");
		stack.add("zhaoda");
		stack.add(null);
		List<String> list=new ArrayList<String>();
		list.add("A");
		list.add("B");
		list.add("C");
		stack.addAll(list);
		System.out.println("size="+stack.size());
		Iterator<String> it=stack.iterator();
		while(it.hasNext()){
			String object=it.next();
			System.out.print(object+",");
		}

输出结果为:size=9

zhangsan,lisi,wangwu,qianliu,zhaoda,null,A,B,C,

以上对stack的操作皆来自于对jdk中stack自带方法的处理。并不具备实际的企业开发意义,但是了解堆栈也为以后选择存储数据提供了一个新的方式。

时间: 2024-09-29 12:15:35

java 关于stack 的语法解析的相关文章

Atitit.sql&#160;ast&#160;表达式&#160;语法树&#160;语法&#160;解析原理与实现&#160;java&#160;php&#160;c#.net&#160;js&#160;python

Atitit.sql ast 表达式 语法树 语法 解析原理与实现 java php c#.net js python 1.1. Sql语法树 ast 如下图锁死1 2. SQL语句解析的思路和过程3 2.1. lexer作为一个工具,完成了对SQL字符串的切割,将语句转化成一个tokens数组.3 2.2. Parser完成了SQL解析的后序部分:使用一个lexer对象作为工具,切出tokens,然后解析语义,绑定相关的系统接口.3 2.3. 关系数据和XML数据库下其抽象语法树分别为: 如图

用java实现一个简易编译器-语法解析

语法和解析树: 举个例子看看,语法解析的过程.句子:"我看到刘德华唱歌".在计算机里,怎么用程序解析它呢.从语法上看,句子的组成是由主语,动词,和谓语从句组成,主语是"我",动词是"看见", 谓语从句是"刘德华唱歌".因此一个句子可以分解成 主语 + 动词 + 谓语从句: 句子-->主语+动词 + 谓语从句 主语是名词,因此有 : 主语->名词 句子里的名词有: "我", "刘德华&q

Java 虚拟机面试题全面解析(干货)

Java 虚拟机面试题全面解析(干货) 本文固定链接:https://www.zybuluo.com/Yano/note/321063 本文 PDF 下载:http://download.csdn.net/detail/yano_nankai/9469648 LeetCode题解:https://github.com/LjyYano/LeetCode 我的博客:http://blog.csdn.net/yano_nankai 周志明著的<深入理解 Java 虚拟机>的干货~如有错误,欢迎指出

【转】Java中的static关键字解析

Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题.以下是本文的目录大纲: 一.static关键字的用途 二.static关键字的误区 三.常见的笔试面试题 一.static关键字的用途 在<Java编程思想>P86页有这样一段话: “static方法就是没有thi

Java中的static关键字解析 转载

原文链接:http://www.cnblogs.com/dolphin0520/p/3799052.html Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字, 也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关 于static的考题.以下是本文的目录大纲: 一.static关键字的用途 二.static关键字的误区 三.常见的笔试面试

Android.mk语法解析

Android.mk文件相当于是从Makefile文件中截取的小片段,非常非常的小!可被系统解析一次或者多次!应该尽量少的声明 该文件的一个很重要的组成部分就是模块 1.    - a static library   静态库 2.    - a shared library   动态库 只需要将动态库安装/拷贝到你的应用程序包即可,静态库是用来生成动态库的 你可以定义一个或多个模块,而且同一source file你可以放到多个模块中 编译之前还有一些细节要注意,比如:不需要将头文件或者一些依赖

【JAVA学习笔记】Java中的static关键字解析

Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题.以下是本文的目录大纲: 一.static关键字的用途 二.static关键字的误区 三.常见的笔试面试题 若有不正之处,希望谅解并欢迎批评指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnb

【源码】Vector、Stack源码解析

注:以下源码基于jdk1.7.0_11 Vector算是一个历史遗留下来的类,现在已基本被ArrayList取代.本文出于学习的目的来分析下这个类. 从图上可以看出Vector和ArrayList同样都直接继承于AbstractList,说明这两者功能上还是很相像的,事实也正是如此. 下面我们依然通过源码的方式解读Vector这个类. public class Vector<E> extends AbstractList<E> implements List<E>, R

Java中的static关键字解析(转自海子)__为什么main方法必须是static的,因为程序在执行main方法的时候没有创建任何对象,因此只有通过类名来访问。

Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题.以下是本文的目录大纲: 一.static关键字的用途 二.static关键字的误区 三.常见的笔试面试题 若有不正之处,希望谅解并欢迎批评指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnb