>  기사  >  Java  >  Java의 스택 클래스

Java의 스택 클래스

WBOY
WBOY원래의
2024-08-30 16:01:28652검색

스택 클래스는 스택 데이터 구조를 구현하는 java.util 패키지의 일부입니다. Java의 스택 클래스는 LIFO(Last In First Out) 원칙에 따라 작동합니다. Stack 클래스는 기본적인 푸시 및 팝 작업과 비우기, 엿보기, 검색과 같은 추가 기능을 제공합니다. 스택 클래스는 다양한 작업을 수행하기 위한 다양한 방법을 제공합니다.

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

구문:

Java에서 스택 클래스가 사용되는 기본 구문은 다음과 같습니다.

import java.util.*;
// instantiate stack through default constructor
Public class Myclass{
// instantiate stack class
Stack stack = new Stack();
stack.push(1);  // calling push method to insert an element
}

Java에서 스택 클래스는 어떻게 작동하나요?

Stack 클래스는 Vector 클래스를 확장하고 List 인터페이스를 구현하는 java.util 패키지의 일부입니다. Vector 클래스는 Java에서 크기 조정이 가능합니다. 즉, 새 요소를 추가하는 경우 크기가 커지고 요소를 제거한 후에는 크기가 줄어들 수 있습니다. 스택 클래스는 벡터를 확장하므로 본질적으로 크기 조정도 가능합니다. 스택 클래스를 사용하려면 생성자를 통해 스택 클래스의 인스턴스를 생성해야 합니다. 스택 클래스는 크기 조정이 가능하므로 기본 생성자는 하나만 사용할 수 있습니다.

인스턴스를 가져온 후 요구 사항에 따라 다음 메서드를 호출할 수 있습니다.

  • push(): 이 메서드는 스택 위에 요소를 삽입하고 삽입된 요소를 반환합니다.
  • pop(): 이 메서드는 스택에서 마지막으로 삽입된 요소를 제거하고 제거된 요소를 반환합니다.
  • peek(): 이 메서드는 스택에서 최상위 요소를 제거하지 않고 스택의 최상위 요소를 반환합니다.
  • 검색(객체 요소): 이 메서드는 스택에서 지정된 요소를 검색하고 해당 요소가 발견되면 스택 맨 위에서 해당 인덱스를 반환합니다. 그렇지 않으면 -1을 반환합니다.
  • empty(): 이 메소드는 주어진 스택이 비어 있는지 확인합니다. 스택이 비어 있으면 true를 반환합니다. 그렇지 않으면 false를 반환합니다.
  • size(): 이 메서드는 스택에서 사용 가능한 여러 요소를 반환합니다.

Java의 Stack 클래스 예

다음은 몇 가지 예입니다.

예시 #1

이제 위에서 언급한 메소드가 스택에서 어떻게 사용되는지에 대한 Java 코드 예제를 살펴보겠습니다.

코드:

//import stack class
import java.util.Stack;
public class StackDemo {
public static void main(String[] args) {
// Creating Instance of  Stack
Stack<String> numbers = new Stack<>(); // stack of type string only string type elements can be inserted
// Pushing new elements to the Stack
numbers.push("One");
numbers.push("Two");
numbers.push("Three");
numbers.push("Four");
int size= numbers.size(); // finding size of stack
System.out.println("Stack contains => " + numbers);
System.out.println("Size of Stack is  => " + size);
System.out.println();
// Popping Elements from the Stack
String numbersAtTop = numbers.pop();  // Throws EmptyStackException if the stack is empty
System.out.println("Element Removed  => " + numbersAtTop);
System.out.println("Current State of Stack => " + numbers);
size= numbers.size();
System.out.println("Size of Stack is  => " + size);
System.out.println();
// Get the element at the top of the stack without removing it
numbersAtTop = numbers.peek();
System.out.println("Top Most elemement of stack  => " + numbersAtTop);
System.out.println("Current State of Stack => " + numbers);
// searching for an element in stack
int index = numbers.search("Two");
System.out.println("Element found at Index " + index);
// check if the stack is empty
boolean isempty = numbers.empty();
System.out.println("Is Stack Empty =>  " + isempty);
}}

위 프로그램은 스택 클래스에서 push, pop, peek, 검색, 비우기와 같은 다양한 작업을 수행하는 방법을 보여줍니다.

예시 #2

이제 스택 클래스의 요소를 반복하는 방법을 살펴보겠습니다.

코드:

//import stack class
import java.util.Stack;
//import stream to iterate over stack
import java.util.stream.Stream;
public class StackDemo {
public static void main(String[] args) {
// Creating Instance of  Stack
Stack<String> numbers = new Stack<>(); // stack of type string only string type elements can be inserted
// Pushing new elements to the Stack
numbers.push("First");
numbers.push("Second");
numbers.push("Third");
numbers.push("Fourth");
System.out.println("Stack contains => " + numbers);
System.out.println();
// getting stream object to iterate over elements of stack
Stream stream = numbers.stream();
System.out.println("Iterating stack using stream >> ");
stream.forEach((item) -> {
System.out.println(item);  // print item
});
}
}

위 프로그램은 스택의 요소를 반복하는 방법을 보여줍니다. Stream 개체를 반환하는 스택 인스턴스에서 stream() 메서드를 호출해야 합니다. 그런 다음 스트림 클래스의 forEach 메서드를 사용하여 스택을 반복할 수 있습니다.

결론

이 글에서는 스택 클래스에 대해 살펴보았습니다. 또한 스택 클래스를 인스턴스화하고 스택 클래스에서 사용할 수 있는 다양한 메서드를 사용하는 방법도 살펴보았습니다. 우리는 Stack 클래스를 사용하여 수행할 수 있는 다양한 작업을 관찰했습니다. 위에 표시된 Java 코드 예는 스택 클래스에 대한 완전한 명확성을 제공합니다.

위 내용은 Java의 스택 클래스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:Java의 최종 클래스다음 기사:Java의 최종 클래스