Maison  >  Article  >  Java  >  Classe de pile en Java

Classe de pile en Java

WBOY
WBOYoriginal
2024-08-30 16:01:28720parcourir

La classe Stack fait partie du package java.util, qui implémente une structure de données de pile. La classe Stack en Java fonctionne sur le principe du LIFO (Last in First Out). La classe Stack offre des opérations push et pop fondamentales et des fonctionnalités supplémentaires telles que vide, aperçu et recherche. La classe stack fournit différentes méthodes pour effectuer différentes opérations.

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Syntaxe :

Voici une syntaxe de base sur la façon dont la classe de pile est utilisée en 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
}

Comment fonctionne Stack Class en Java ?

La classe Stack fait partie du package java.util, qui étend la classe Vector et implémente l'interface List. La classe Vector est redimensionnable en Java, ce qui signifie qu'elle peut augmenter en taille en cas d'ajout de nouveaux éléments et diminuer en taille après la suppression d'éléments. Étant donné que la classe stack étend le vecteur, elle est également de nature redimensionnable. Pour utiliser une classe de pile, nous devons créer une instance d'une classe de pile via un constructeur. Étant donné que la classe de pile est redimensionnable, un seul constructeur par défaut y est disponible.

Après avoir obtenu l'instance, les méthodes suivantes peuvent être invoquées selon les besoins :

  • push() : Cette méthode insère un élément au-dessus de la pile et renvoie l'élément inséré.
  • pop() : Cette méthode supprime le dernier élément inséré de la pile et renvoie l'élément supprimé.
  • peek() : Cette méthode renvoie les principaux éléments de la pile sans les supprimer de la pile.
  • recherche (élément d'objet) : Cette méthode recherche un élément spécifié dans les piles et renvoie son index du haut de la pile si l'élément est trouvé ; sinon, il renvoie -1.
  • empty() : Cette méthode vérifie si la pile donnée est vide. Il renvoie vrai si la pile est vide ; sinon, il renvoie false.
  • size() : Cette méthode renvoie un certain nombre d'éléments disponibles dans la pile.

Exemples de classe Stack en Java

Certains exemples sont donnés ci-dessous :

Exemple n°1

Nous allons maintenant voir un exemple de code Java de la façon dont les méthodes mentionnées ci-dessus sont utilisées dans la pile.

Code :

//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);
}}

Le programme ci-dessus montre comment différentes opérations telles que push, pop, peek et search, empty peuvent être effectuées sur la classe de pile.

Exemple n°2

Nous allons maintenant voir comment il peut s'agir d'éléments itérés d'une classe de pile.

Code :

//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
});
}
}

Le programme ci-dessus montre comment nous pouvons parcourir les éléments de la pile. Nous devons appeler la méthode stream() sur l'instance de pile, qui renvoie l'objet Stream. Ensuite, nous pouvons parcourir la pile en utilisant la méthode forEach de la classe stream.

Conclusion

Dans cet article, nous avons vu la classe stack. Nous avons également vu comment instancier la classe stack et utiliser différentes méthodes disponibles dans la classe stack. Nous avons observé diverses opérations que l'on peut effectuer à l'aide d'une classe Stack. Les exemples de code Java présentés ci-dessus fournissent une clarté totale sur la classe de pile.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Classe finale en JavaArticle suivant:Classe finale en Java