Classe de pile Java

Dans ce didacticiel, nous allons découvrir la classe Java Stack et ses méthodes à l'aide d'exemples.

Le framework de collections Java a une classe nommée Stackqui fournit les fonctionnalités de la structure de données de la pile.

La Stackclasse étend la Vectorclasse.

Implémentation de la pile

Dans la pile, les éléments sont stockés et accédés de manière Last In First Out . Autrement dit, les éléments sont ajoutés au sommet de la pile et supprimés du haut de la pile.

Créer une pile

Afin de créer une pile, nous devons d'abord importer le java.util.Stackpackage. Une fois le package importé, voici comment créer une pile en Java.

 Stack stacks = new Stack(); 

Ici, Typeindique le type de pile. Par exemple,

 // Create Integer type stack Stack stacks = new Stack(); // Create String type stack Stack stacks = new Stack(); 

Méthodes d'empilement

Depuis Stackétend la Vectorclasse, il hérite de toutes les méthodes Vector. Pour en savoir plus sur les différentes Vectorméthodes, visitez Java Vector Class.

Outre ces méthodes, la Stackclasse comprend 5 autres méthodes qui la distinguent de Vector.

push (), méthode

Pour ajouter un élément en haut de la pile, nous utilisons la push()méthode. Par exemple,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); ) ) 

Production

 Pile: (chien, cheval, chat) 

méthode pop ()

Pour supprimer un élément du haut de la pile, nous utilisons la pop()méthode. Par exemple,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Initial Stack: " + animals); // Remove element stacks String element = animals.pop(); System.out.println("Removed Element: " + element); ) ) 

Production

 Pile initiale: (chien, cheval, chat) Élément supprimé: chat 

peek (), méthode

La peek()méthode retourne un objet du haut de la pile. Par exemple,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); // Access element from the top String element = animals.peek(); System.out.println("Element at top: " + element); ) ) 

Production

 Pile: (Chien, Cheval, Chat) Élément en haut: Chat 

search (), méthode

Pour rechercher un élément dans la pile, nous utilisons la search()méthode. Il renvoie la position de l'élément à partir du haut de la pile. Par exemple,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); // Search an element int position = animals.search("Horse"); System.out.println("Position of Horse: " + position); ) ) 

Production

 Stack: (Chien, Cheval, Chat) Position du cheval: 2 

empty (), méthode

Pour vérifier si une pile est vide ou non, nous utilisons la empty()méthode. Par exemple,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); // Check if stack is empty boolean result = animals.empty(); System.out.println("Is the stack empty? " + result); ) ) 

Production

Pile: (Chien, Cheval, Chat) La pile est-elle vide? faux

Utilisez ArrayDeque au lieu de Stack

La Stackclasse fournit l'implémentation directe de la structure de données de la pile. Cependant, il est recommandé de ne pas l'utiliser. À la place, utilisez la ArrayDequeclasse (implémente l' Dequeinterface) pour implémenter la structure de données de la pile en Java.

Pour en savoir plus, visitez:

  • Java ArrayDeque
  • Pourquoi utiliser Deque sur Stack?

Articles intéressants...