English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서는 예제를 통해 Java Stack 클래스와 그 메서드를 배웁니다.
Java 컬렉션 프레임워크는 Stack라는 클래스를 가지고 있으며, 이 클래스는 스택 데이터 구조의 기능을 제공합니다.
이 Stack 클래스는 Vector 클래스를 상속받습니다.
스택에서 요소는마지막에 추가된 요소가 먼저 제거되는 방식방식으로 저장하고 접근할 수 있습니다. 즉, 요소가 스택의 최상단에 추가되고 최상단에서 제거됩니다.
스택을 생성하기 위해 먼저 java.util.Stack 패키지를 가져오아야 합니다. 패키지를 가져오면 Java로 스택을 생성할 수 있습니다.
Stack<Type> stacks = new Stack<>();
在此,Type指示堆栈的类型。例如,
//创建整数类型堆栈 Stack<Integer> stacks = new Stack<>(); //创建字符串类型堆栈 Stack<String> stacks = new Stack<>();
由于Stack继承了Vector类,因此它继承了所有方法Vector。要了解不同的Vector方法,请访问Java Vector Class。
除了这些方法之外,Stack类还包括5个与Vector区别开来的方法。
要将元素添加到堆栈的顶部,我们使用push()方法。例如,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //요소를 Stack에 추가 animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: "); + animals); } }
출력 결과
Stack: [Dog, Horse, Cat]
要从堆栈顶部删除元素,我们使用pop()方法。例如,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //将元素添加到 Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("初始堆栈: " ); + animals); //删除堆栈元素,后进先出 String element = animals.pop(); System.out.println("删除元素: " ); + element); } }
출력 결과
初始堆栈: [Dog, Horse, Cat] 删除元素: Cat
该peek()方法从堆栈顶部返回一个对象。例如,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //요소를 Stack에 추가 animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: "); + animals); //从顶部访问元素,后进先出的原则 String element = animals.peek(); System.out.println("顶部元素: " ); + element); } }
출력 결과
Stack: [Dog, Horse, Cat] 顶部元素: Cat
要搜索堆栈中的元素,我们使用search()方法。它从堆栈的顶部返回元素的位置。例如,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //요소를 Stack에 추가 animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: "); + animals); //搜索元素 int position = animals.search("Horse"); System.out.println("元素Horse的位置: " ); + position); } }
출력 결과
Stack: [Dog, Horse, Cat] 元素Horse的位置: 2
要检查堆栈是否为空,我们使用empty()方法。例如,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //요소를 Stack에 추가 animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: "); + animals); //스택이 비어 있는지 확인 boolean result = animals.empty(); System.out.println("스택이 비어 있습니까? "); + result); } }
출력 결과
Stack: [Dog, Horse, Cat] 스택이 비어 있습니까? false
이 Stack 클래스는 직접 스택 데이터 구조를 실행하는 데이터 구조를 제공합니다. 그러나 ArrayDeque 클래스(Deque 인터페이스를 구현)를 사용하여 Java에서 스택 데이터 구조를 구현하는 것이 좋습니다.
더 많은 정보를 얻으려면 방문하세요:Java ArrayDeque