盤點(diǎn)Java基礎(chǔ)中的Stack類及其常用方法
大家好,我是Java進(jìn)階者!
一、Stack類
1.Stack是Vector的一個(gè)子類,它實(shí)現(xiàn)標(biāo)準(zhǔn)的后進(jìn)先出堆棧。Stack只定義了創(chuàng)建空堆棧的默認(rèn)構(gòu)造方法。
- Stack()
2.Stack類里面主要實(shí)現(xiàn)的有以下的幾個(gè)方法:
(1)boolean empty( )方法是判斷堆棧是否為空。
(2)Object peek( )方法是返回棧頂端的元素,但不從堆棧中移除它。
(3)Object pop( )方法是移除堆棧頂部的對(duì)象,并作為此函數(shù)的值返回該對(duì)象。
(4)Object push (Object element)方法是把元素壓入棧。
(5)int search(Object element)方法是返回對(duì)象在堆棧中的位置,它是以1為基數(shù)。
二、Stack類boolean empty()方法
1.boolean empty()方法是判斷堆棧是否為空,就需要有一個(gè)變量來計(jì)算當(dāng)前棧的長度,若變量的值為0,說明這個(gè)棧是空的。
2.例子的實(shí)現(xiàn):
- import java.util.Stack;
- public class T7 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- //定義一個(gè)String泛型的Stack
- Stack<String> stack = new Stack<String>();
- //判斷新建的棧是否為空
- boolean flag=stack.empty();
- if(flag){
- System.out.println("新建的棧是為空");
- }else{
- System.out.println("新建的棧是不為空,它的長度是:"+stack.size());
- }
- }
- }
運(yùn)行的結(jié)果如下所示:
二、Stack類Object peek()方法
1.Object peek( )方法是返回棧頂端的元素,對(duì)堆棧中本身不做任何的改動(dòng)。若棧里有元素就返回最頂端的元素。
2.例子的實(shí)現(xiàn)
- import java.util.Stack;
- public class T8 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- //定義一個(gè)String泛型的Stack
- Stack<String> stack = new Stack<String>();
- //把元素壓入棧中
- stack.push("Java");
- stack.push("Python");
- stack.push("PHP");
- stack.push("軟件測試");
- stack.push("軟件工程");
- //返回棧頂端的元素,但不從堆棧中移除它
- String topE=stack.peek();
- System.out.println("返回堆棧中的棧頂元素為 : "+topE);
- }
- }
運(yùn)行的結(jié)果如下所示:
三、Stack類Object pop()方法
1.Object pop()方法移除堆棧頂部的對(duì)象,并作為此函數(shù)的值返回該對(duì)象。
2.例子的實(shí)現(xiàn)
- import java.util.Stack;
- public class T8 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- //定義一個(gè)String泛型的Stack
- Stack<String> stack = new Stack<String>();
- //把元素壓入棧中
- stack.push("Java");
- stack.push("Python");
- stack.push("PHP");
- stack.push("軟件測試");
- stack.push("軟件工程");
- System.out.println("堆棧中的元素有:"+stack);
- //移除堆棧頂部的元素,但不從堆棧中移除它
- String remove=stack.pop();
- System.out.println("移除堆棧頂部的元素有:"+remove);
- System.out.println("移除后堆棧中的元素有:"+stack);
- }
- }
運(yùn)行的結(jié)果如下所示:
四、Stack類Object push (Object element)方法
1.push(Object element)方法把入棧的元素添加到數(shù)組的末尾,數(shù)組的長度就加1。
2.例子的實(shí)現(xiàn)
- import java.util.Stack;
- public class T9 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- //定義一個(gè)Integer泛型的Stack
- Stack<Integer> stack = new Stack<Integer>();
- //把元素壓入棧中
- stack.push(10);
- stack.push(20);
- stack.push(30);
- stack.push(40);
- System.out.println("堆棧中的元素有:"+stack);
- }
- }
運(yùn)行的結(jié)果如下所示:
五、Stack類int search(Object element)方法
1.int search(Object element)方法是返回對(duì)象在堆棧中的位置,它是以1為基數(shù)。
2.例子的實(shí)現(xiàn)
- import java.util.Stack;
- public class T9 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- //定義一個(gè)Integer泛型的Stack
- Stack<Integer> stack = new Stack<Integer>();
- //把元素壓入棧中
- stack.push(10);
- stack.push(20);
- stack.push(30);
- stack.push(40);
- System.out.println("堆棧中的元素有:"+stack);
- //返回對(duì)象在堆棧中的位置,它是以1為基數(shù)
- int find=stack.search(20);
- System.out.println("返回對(duì)象在堆棧中的位置:"+find);
- }
- }
運(yùn)行的結(jié)果如下所示:
六、總結(jié)
本文主要介紹了Stack類、Stack類的常用方法,例如boolean empty()方法、Object peek()方法、Object pop()方法、Object push (Object element)方法、int search(Object element)方法。Stack是Vector的一個(gè)子類,它實(shí)現(xiàn)標(biāo)準(zhǔn)的后進(jìn)先出堆棧。empty()方法判斷堆棧是否為空、peek()方法返回棧頂端的元素,對(duì)堆棧中本身不做任何的改動(dòng)、pop()方法移除堆棧頂部的對(duì)象、push()方法把元素壓入棧中、search()方法是返回對(duì)象在堆棧中的位置,它是以1為基數(shù)。通過本文的學(xué)習(xí),希望對(duì)你有所幫助!
本文轉(zhuǎn)載自微信公眾號(hào)「Java進(jìn)階學(xué)習(xí)交流」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Java進(jìn)階學(xué)習(xí)交流公眾號(hào)。