java Stack的简单用法

Stack 有时也可以称为“后入先出”( LIFO)集合。换言之,我们在堆栈里最后“压入”的东西将是以后第
一个“弹出”的。和其他所有 Java 集合一样,我们压入和弹出的都是“对象”,所以必须对自己弹出的东西
进行“造型”。

String[] months = { "January", "February", "March", "April", "May", "June", "July", "August", "September",
"October", "November", "December" };
Stack stk = new Stack();
for(int i=0;i<months.length;i++){
stk.push(months[i]);
}
for(int i=0;i<stk.size();i++){
System.out.println(stk.pop());
}
Stack的长度是12,但是控制台并没有把所有元素输出出来,这是为什么呢?
December
November
October
September
August
July

因为stk.pop()会移除堆栈顶部的对象。故stk.size()会递减,而i变量在递增。所以只取到一半i<stk.size()就不满足条件了如果换成months.length那么stk的所有元素都会弹出冰输出出来了

System.out.println(stk.empty());//是否为空
System.out.println(stk.peek());//弹出顶端元素但是不删除
System.out.println(stk.contains("February"));//查找一个对象是否在堆栈中存在
System.out.println(stk.elementAt(6));//输出指定位置的元素
System.out.println(stk.lastIndexOf("April"));//查找一个对象是否在堆栈中的位置
stk.sort(null);//对元素进行排序,如果不指定则按照Z-A排序

原文地址:https://www.cnblogs.com/miaow/p/9472694.html

时间: 2024-12-24 02:21:12

java Stack的简单用法的相关文章

Java Calendar类简单用法

我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3832307.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验. 初始化 Calendar calendar = new GregorianCalendar(); set方法 calendar.set(Calendar.YEAR, year); get方法 int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);

Quartz2.2.1在JAVA中的简单用法

由于项目中需要用到定时执行任务,后来查资料发现有Quartz这么一个任务调度框架,但是网上的大部分资料几乎都是之前的版本,Quartz-2.2.1好像经过了改版,与先前的版本在用法上有那么一些出入,2.2.1里面好多方法都被弃用了,然后经过一番折腾,算是会简单的使用了.下面简单的介绍一下: 官网:http://www.quartz-scheduler.org/ 下载完进行解压会得到这六个jar包文件: 这里只介绍一下简单的用法: 1.Job接口:这个接口里面只定义了一个方法,excute voi

java中Object.equals()简单用法

/* equals()方法默认的比较两个对象的引用! */ class Child { int num; public Child(int x){ num = x; } //人文的抛出运行时异常的好处是:可以自定义错误信息! /*public boolean equals(Object o) throws ClassCastException{ if(!(o instanceof Child)) throw new ClassCastException("中文提示:类型错误"); Ch

JAVA使用Logback发送日志到控制台、文件、ELK的最简单用法

一.简述 本文讲JAVA使用Logback发送日志到控制台.文件.ELK的最简单用法. 二.教程 1.新建pom.xml项目引入下列依赖: <dependencies> <!--Begin LogBack Log--> <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic --> <dependency> <groupId>ch.qos.logback<

C#中泛型容器Stack&lt;T&gt;的用法,以及借此实现&rdquo;撤销/重做&rdquo;功能

.Net为我们提供了众多的泛型集合.比如,Stack<T>先进后出,Queue<T>先进先出,List<T>集合元素可排序,支持索引,LinkedList<T>,双向链表的泛型实现,不支持索引;ISet<T>不允许被复制,他有2个实现,一个是HashSet<T>,不维持集合元素的排序,另一个是SortedSet<T>,支持集合元素的排序;IDictionary<TKey, TValue>是一个字典集合的泛型接口

Java元注解,简单案例

[注解] 程序中有 注释 和注解 * 注释:给开发人员. * 注解:给计算机看的. 注解使用:学习框架支持注解开发. [JDK提供的注解] @Override :描述方法的重写. @SuppressWarnings :压制警告. @Deprecated :标记过时. 自定义注解: 定义一个类:class 定义一个借口:interface 定义一个枚举:enum 定义一个注解:@interface 用法: @interface MyAnno1{ } 带有属性的注解: @interface MyAn

【android】Socket简单用法

原文地址:http://www.cnblogs.com/harrisonpc/archive/2011/03/31/2001565.html Socket通常也称做”套接字“,用于描述IP地址和端口,废话不多说,它就是网络通信过程中端点的抽象表示.值得一提的是,Java在包java.net中提供了两个类Socket和ServerSocket,分别用来表示双向连接的客户端和服务端.这是两个封装得非常好的类,使用起来很方便! 下面将首先创建一个SocketServer的类作为服务端如下,该服务端实现

java设计之简单的JAVA计算器

做这个东西主要是为了练习一下以前学习过的java Swing,所以那些复杂的算法就没有加载到里面去........ 先展示一下效果....,额,当然不是这个样子....   ---> 代码: 1 package dialog_color; 2 3 import java.awt.BorderLayout; 4 import java.awt.Color; 5 import java.awt.Container; 6 import java.awt.FlowLayout; 7 import jav

Java的多线程 简单入门

Java的多线程 简单入门 首先可以先搞清楚什么是程序.进程.线程,以及它们之间的关系: 定义: 一 程序只是一组指令的有序集合,它是静态的 二 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位: 三 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),一个线程可以创建和撤销另一个线程: 进程与线程区别与联系 (