Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Classe Java Stack – Guide Complet d'Utilisation et de Méthodes

Classe Java Stack

Ce tutoriel explique la classe Stack de Java, ses méthodes principales et des exemples pratiques pour maîtriser les opérations de pile.

Le framework de collections Java inclut une classe Stack qui implémente la structure de données pile classique. Selon la documentation officielle Java, Stack étend Vector, héritant de toutes ses méthodes tout en ajoutant des opérations spécifiques aux piles.


Implémentation de Stack

Une pile suit le principe Last In, First Out (LIFO - dernier entré, premier sorti) : les éléments sont empilés (push) au sommet et dépilés (pop) du sommet. Le diagramme suivant illustre ce comportement.


Création d'une Stack

Pour créer une pile, importez java.util.Stack et instanciez-la avec le type générique souhaité :

Stack<Type> stack = new Stack<>();

Exemples :

// Pile d'entiers
Stack<Integer> intStack = new Stack<>();
// Pile de chaînes
Stack<String> stringStack = new Stack<>();

Méthodes de Stack

Au-delà des méthodes héritées de Vector, Stack fournit cinq opérations dédiées qui la distinguent des collections génériques. Pour une liste complète des méthodes de Vector, consultez la documentation de la classe Vector.


Méthode push()

push() ajoute un élément au sommet de la pile.

import java.util.Stack;
class Main {
    public static void main(String[] args) {
        Stack<String> animals = new Stack<>();
        animals.push("Dog");
        animals.push("Horse");
        animals.push("Cat");
        System.out.println("Stack: " + animals);
    }
}

Sortie

Stack: [Dog, Horse, Cat]

Méthode pop()

La méthode pop() supprime et retourne l'élément au sommet de la pile.

import java.util.Stack;
class Main {
    public static void main(String[] args) {
        Stack<String> animals = new Stack<>();
        animals.push("Dog");
        animals.push("Horse");
        animals.push("Cat");
        System.out.println("Stack Initial: " + animals);
        String removed = animals.pop();
        System.out.println("Élément Supprimé: " + removed);
    }
}

Sortie

Stack Initial: [Dog, Horse, Cat] Élément Supprimé: Cat

Méthode peek()

La méthode peek() récupère l'élément du sommet sans le supprimer.

import java.util.Stack;
class Main {
    public static void main(String[] args) {
        Stack<String> animals = new Stack<>();
        animals.push("Dog");
        animals.push("Horse");
        animals.push("Cat");
        System.out.println("Stack: " + animals);
        String top = animals.peek();
        System.out.println("Élément au sommet: " + top);
    }
}

Sortie

Stack: [Dog, Horse, Cat] Élément au sommet: Cat

La méthode search() retourne la position 1-based d'un élément depuis le sommet de la pile, ou -1 s'il n'est pas présent.

import java.util.Stack;
class Main {
    public static void main(String[] args) {
        Stack<String> animals = new Stack<>();
        animals.push("Dog");
        animals.push("Horse");
        animals.push("Cat");
        System.out.println("Stack: " + animals);
        int pos = animals.search("Horse");
        System.out.println("Position de Horse: " + pos);
    }
}

Sortie

Stack: [Dog, Horse, Cat] Position de Horse: 2

Méthode empty()

La méthode empty() vérifie si la pile contient des éléments.

import java.util.Stack;
class Main {
    public static void main(String[] args) {
        Stack<String> animals = new Stack<>();
        animals.push("Dog");
        animals.push("Horse");
        animals.push("Cat");
        System.out.println("Stack: " + animals);
        boolean isEmpty = animals.empty();
        System.out.println("La pile est-elle vide? " + isEmpty);
    }
}

Sortie

Stack: [Dog, Horse, Cat] La pile est-elle vide? false

Utilisez ArrayDeque au Lieu de Stack

Bien que Stack implémente une pile, elle est considérée comme legacy. Le code Java moderne préfère ArrayDeque (implémentant l'interface Deque) pour la fonctionnalité de pile car il offre de meilleures performances et une sémantique plus claire. Pour plus de détails, voir :

Java

  1. Comprendre le mot-clé final en Java : variables, méthodes et classes
  2. L'opérateur instanceof en Java : guide complet
  3. Comprendre les classes imbriquées statiques en Java : utilisation, différences et exemples
  4. Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
  5. Le pattern Singleton en Java expliqué : implémentation et utilisation sûre
  6. Maîtriser la réflexion Java : inspection des classes, méthodes et champs à l'exécution
  7. Maîtriser Java ObjectOutputStream : Sérialisation, méthodes et exemples pratiques
  8. Maîtriser les génériques Java : Construire du code réutilisable et type-safe
  9. Maîtriser les opérations sur les fichiers Java avec java.io – Création, lecture, écriture et suppression