盘点Java基础中的Stack类及其常用方法

开发 后端
Stack是Vector的一个子类,它实现标准的后进先出堆栈。Stack只定义了创建空堆栈的默认构造方法。

[[409259]]

大家好,我是Java进阶者!

一、Stack类

1.Stack是Vector的一个子类,它实现标准的后进先出堆栈。Stack只定义了创建空堆栈的默认构造方法。

  1. Stack() 

2.Stack类里面主要实现的有以下的几个方法:

(1)boolean empty( )方法是判断堆栈是否为空。

(2)Object peek( )方法是返回栈顶端的元素,但不从堆栈中移除它。

(3)Object pop( )方法是移除堆栈顶部的对象,并作为此函数的值返回该对象。

(4)Object push (Object element)方法是把元素压入栈。

(5)int search(Object element)方法是返回对象在堆栈中的位置,它是以1为基数。

二、Stack类boolean empty()方法

1.boolean empty()方法是判断堆栈是否为空,就需要有一个变量来计算当前栈的长度,若变量的值为0,说明这个栈是空的。

2.例子的实现:

  1. import java.util.Stack; 
  2. public class T7 { 
  3. public static void main(String[] args) { 
  4.         // TODO Auto-generated method stub 
  5.         //定义一个String泛型的Stack 
  6.         Stack<String> stack = new Stack<String>(); 
  7.         //判断新建的栈是否为空 
  8.         boolean flag=stack.empty(); 
  9.         if(flag){ 
  10.             System.out.println("新建的栈是为空"); 
  11.         }else
  12.             System.out.println("新建的栈是不为空,它的长度是:"+stack.size()); 
  13.         } 

运行的结果如下所示:

二、Stack类Object peek()方法

1.Object peek( )方法是返回栈顶端的元素,对堆栈中本身不做任何的改动。若栈里有元素就返回最顶端的元素。

2.例子的实现

  1. import java.util.Stack; 
  2. public class T8 { 
  3. public static void main(String[] args) { 
  4.         // TODO Auto-generated method stub 
  5.         //定义一个String泛型的Stack 
  6.         Stack<String> stack = new Stack<String>(); 
  7.         //把元素压入栈中 
  8.         stack.push("Java"); 
  9.         stack.push("Python"); 
  10.         stack.push("PHP"); 
  11.         stack.push("软件测试"); 
  12.         stack.push("软件工程"); 
  13.         //返回栈顶端的元素,但不从堆栈中移除它 
  14.         String topE=stack.peek(); 
  15.         System.out.println("返回堆栈中的栈顶元素为 : "+topE); 

运行的结果如下所示:

三、Stack类Object pop()方法

1.Object pop()方法移除堆栈顶部的对象,并作为此函数的值返回该对象。

2.例子的实现

  1. import java.util.Stack; 
  2. public class T8 { 
  3. public static void main(String[] args) { 
  4.         // TODO Auto-generated method stub 
  5.         //定义一个String泛型的Stack 
  6.         Stack<String> stack = new Stack<String>(); 
  7.         //把元素压入栈中 
  8.         stack.push("Java"); 
  9.         stack.push("Python"); 
  10.         stack.push("PHP"); 
  11.         stack.push("软件测试"); 
  12.         stack.push("软件工程"); 
  13.         System.out.println("堆栈中的元素有:"+stack); 
  14.         //移除堆栈顶部的元素,但不从堆栈中移除它 
  15.         String remove=stack.pop(); 
  16.         System.out.println("移除堆栈顶部的元素有:"+remove); 
  17.         System.out.println("移除后堆栈中的元素有:"+stack); 

运行的结果如下所示:

四、Stack类Object push (Object element)方法

1.push(Object element)方法把入栈的元素添加到数组的末尾,数组的长度就加1。

2.例子的实现

  1. import java.util.Stack; 
  2. public class T9 { 
  3. public static void main(String[] args) { 
  4.         // TODO Auto-generated method stub 
  5.         //定义一个Integer泛型的Stack 
  6.         Stack<Integer> stack = new Stack<Integer>(); 
  7.         //把元素压入栈中 
  8.         stack.push(10); 
  9.         stack.push(20); 
  10.         stack.push(30); 
  11.         stack.push(40); 
  12.         System.out.println("堆栈中的元素有:"+stack); 

运行的结果如下所示:

五、Stack类int search(Object element)方法

1.int search(Object element)方法是返回对象在堆栈中的位置,它是以1为基数。

2.例子的实现

  1. import java.util.Stack; 
  2. public class T9 { 
  3. public static void main(String[] args) { 
  4.         // TODO Auto-generated method stub 
  5.         //定义一个Integer泛型的Stack 
  6.         Stack<Integer> stack = new Stack<Integer>(); 
  7.         //把元素压入栈中 
  8.         stack.push(10); 
  9.         stack.push(20); 
  10.         stack.push(30); 
  11.         stack.push(40); 
  12.         System.out.println("堆栈中的元素有:"+stack); 
  13.         //返回对象在堆栈中的位置,它是以1为基数 
  14.         int find=stack.search(20); 
  15.         System.out.println("返回对象在堆栈中的位置:"+find); 

运行的结果如下所示:

六、总结

本文主要介绍了Stack类、Stack类的常用方法,例如boolean empty()方法、Object peek()方法、Object pop()方法、Object push (Object element)方法、int search(Object element)方法。Stack是Vector的一个子类,它实现标准的后进先出堆栈。empty()方法判断堆栈是否为空、peek()方法返回栈顶端的元素,对堆栈中本身不做任何的改动、pop()方法移除堆栈顶部的对象、push()方法把元素压入栈中、search()方法是返回对象在堆栈中的位置,它是以1为基数。通过本文的学习,希望对你有所帮助!

本文转载自微信公众号「Java进阶学习交流」,可以通过以下二维码关注。转载本文请联系Java进阶学习交流公众号。

 

责任编辑:武晓燕 来源: Java进阶学习交流
相关推荐

2021-08-05 09:55:54

云计算

2021-04-15 10:00:46

Java基础ListJava开发

2021-04-12 10:02:02

JavaList集合

2021-10-11 08:58:33

Vector类搜索方法

2021-07-15 10:01:31

Vector搜索向量

2021-08-16 09:35:34

Collections Java开发

2021-07-22 09:53:34

Vector类Java添加元素

2021-04-29 10:01:30

JavaMathJava编程

2021-07-29 10:00:24

Arrays工具类元素

2021-07-12 11:01:15

Vector元素方法

2021-08-19 10:30:13

Java集合排序程序开发

2010-07-30 13:20:31

.NET正则

2020-09-02 14:20:21

JavaHashSetTreeSet

2021-10-09 07:10:31

JavaScript对象Python

2015-03-24 15:08:21

mapreducehadoop

2015-03-03 09:19:12

UIScrollVie

2021-04-22 09:57:37

Random方法游戏

2021-03-22 09:56:01

Java基础System类Static

2019-11-06 16:21:25

ArrayListLinkedListVector

2020-05-20 13:24:28

MySQL优化数据库
点赞
收藏

51CTO技术栈公众号