Comment vérifier si un tableau Java contient des éléments null

JavaJavaBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous apprendrez à vérifier si un tableau Java contient des éléments nuls. La gestion des valeurs null est une compétence fondamentale en programmation Java pour éviter des erreurs courantes telles que NullPointerException. Nous allons explorer trois méthodes différentes pour y parvenir : parcourir le tableau à l'aide d'une boucle, exploiter les capacités de l'API Stream et compter le nombre d'éléments nuls présents dans le tableau. À la fin de ce laboratoire, vous disposerez de techniques pratiques pour identifier et gérer efficacement les valeurs null dans vos tableaux Java.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java/BasicSyntaxGroup -.-> java/if_else("If...Else") java/BasicSyntaxGroup -.-> java/for_loop("For Loop") java/DataStructuresGroup -.-> java/arrays("Arrays") java/DataStructuresGroup -.-> java/arrays_methods("Arrays Methods") java/FileandIOManagementGroup -.-> java/stream("Stream") subgraph Lab Skills java/if_else -.-> lab-559998{{"Comment vérifier si un tableau Java contient des éléments null"}} java/for_loop -.-> lab-559998{{"Comment vérifier si un tableau Java contient des éléments null"}} java/arrays -.-> lab-559998{{"Comment vérifier si un tableau Java contient des éléments null"}} java/arrays_methods -.-> lab-559998{{"Comment vérifier si un tableau Java contient des éléments null"}} java/stream -.-> lab-559998{{"Comment vérifier si un tableau Java contient des éléments null"}} end

Parcourir le tableau pour vérifier les valeurs null

Dans cette étape, nous allons apprendre à vérifier les valeurs null dans un tableau Java en parcourant ses éléments. La gestion des valeurs null est cruciale en Java pour éviter les NullPointerException, qui sont des erreurs courantes.

Une valeur null en Java signifie qu'une variable ne fait référence à aucun objet. Lorsque vous essayez d'accéder à une méthode ou à un champ d'une variable qui est null, une NullPointerException se produit, faisant planter votre programme.

Créons un simple programme Java pour démontrer comment parcourir un tableau et vérifier les éléments null.

  1. Ouvrez le fichier HelloJava.java dans l'éditeur WebIDE. Si vous ne l'avez pas ouvert, vous le trouverez dans l'Explorateur de fichiers à gauche, dans le dossier project.

  2. Remplacez le code existant dans HelloJava.java par le code suivant :

    public class HelloJava {
        public static void main(String[] args) {
            String[] names = new String[5]; // Declare an array of Strings with size 5
            names[0] = "Alice";
            names[1] = "Bob";
            names[2] = null; // Assign a null value
            names[3] = "Charlie";
            names[4] = null; // Assign another null value
    
            System.out.println("Checking array for null values:");
    
            // Loop through the array
            for (int i = 0; i < names.length; i++) {
                // Check if the current element is null
                if (names[i] == null) {
                    System.out.println("Element at index " + i + " is null.");
                } else {
                    System.out.println("Element at index " + i + " is: " + names[i]);
                }
            }
        }
    }

    Examinons les nouvelles parties de ce code :

    • String[] names = new String[5]; : Cette ligne déclare un tableau nommé names qui peut contenir 5 objets String. Lorsque vous créez un tableau d'objets de cette manière, les éléments sont automatiquement initialisés à null.
    • names[2] = null; et names[4] = null; : Nous assignons explicitement null aux éléments d'indice 2 et 4.
    • for (int i = 0; i < names.length; i++) : Il s'agit d'une boucle for standard qui parcourt le tableau du premier élément (indice 0) au dernier élément (names.length - 1).
    • if (names[i] == null) : À l'intérieur de la boucle, cette instruction if vérifie si l'élément à l'indice actuel i est égal à null.
    • System.out.println("Element at index " + i + " is null."); : Si l'élément est null, cette ligne est exécutée.
    • System.out.println("Element at index " + i + " is: " + names[i]); : Si l'élément n'est pas null, cette ligne est exécutée, affichant la valeur de l'élément.
  3. Enregistrez le fichier HelloJava.java (Ctrl+S ou Cmd+S).

  4. Maintenant, compilez le programme modifié. Ouvrez le Terminal en bas de l'éditeur WebIDE et exécutez la commande suivante :

    javac HelloJava.java

    S'il n'y a pas d'erreurs, la compilation est réussie.

  5. Enfin, exécutez le programme compilé :

    java HelloJava

    Vous devriez voir une sortie similaire à ceci :

    Checking array for null values:
    Element at index 0 is: Alice
    Element at index 1 is: Bob
    Element at index 2 is null.
    Element at index 3 is: Charlie
    Element at index 4 is null.

    Cette sortie montre que notre programme a réussi à identifier et à signaler les éléments null dans le tableau.

Dans cette étape, vous avez appris à parcourir manuellement un tableau Java et à vérifier chaque élément pour une valeur null à l'aide d'une simple condition if. Il s'agit d'une technique fondamentale pour gérer les NullPointerException potentielles.

Utiliser l'API Stream pour détecter les valeurs null

Dans l'étape précédente, nous avons utilisé une boucle for traditionnelle pour vérifier les valeurs null dans un tableau. Java 8 a introduit l'API Stream, qui offre une approche plus fonctionnelle et souvent plus concise pour traiter des collections de données, y compris les tableaux. Dans cette étape, nous allons apprendre à utiliser l'API Stream pour détecter les éléments null.

L'API Stream vous permet d'effectuer des opérations sur une séquence d'éléments de manière déclarative. Cela signifie que vous décrivez ce que vous voulez faire, plutôt que comment le faire (comme avec une boucle for).

Modifions notre programme HelloJava.java pour utiliser l'API Stream afin de trouver et d'afficher les éléments null.

  1. Ouvrez le fichier HelloJava.java dans l'éditeur WebIDE.

  2. Remplacez le code existant par le code suivant :

    import java.util.Arrays; // Import the Arrays class
    import java.util.Objects; // Import the Objects class
    
    public class HelloJava {
        public static void main(String[] args) {
            String[] names = new String[5];
            names[0] = "Alice";
            names[1] = "Bob";
            names[2] = null;
            names[3] = "Charlie";
            names[4] = null;
    
            System.out.println("Checking array for null values using Stream API:");
    
            // Convert the array to a Stream
            Arrays.stream(names)
                  // Filter for null elements
                  .filter(Objects::isNull)
                  // Print each null element (or a message indicating null)
                  .forEach(name -> System.out.println("Found a null element."));
        }
    }

    Analysons les nouvelles parties :

    • import java.util.Arrays; : Nous devons importer la classe Arrays pour utiliser sa méthode stream().
    • import java.util.Objects; : Nous importons la classe Objects pour utiliser la méthode isNull(), qui est un moyen pratique de vérifier si un objet est null.
    • Arrays.stream(names) : Cette ligne convertit notre tableau names en un Stream d'objets String.
    • .filter(Objects::isNull) : Il s'agit d'une opération intermédiaire. Elle filtre le flux, ne conservant que les éléments pour lesquels la condition Objects.isNull(element) est vraie (c'est-à-dire les éléments qui sont null). Objects::isNull est une référence de méthode, une forme abrégée d'une expression lambda name -> Objects.isNull(name).
    • .forEach(name -> System.out.println("Found a null element.")); : Il s'agit d'une opération terminale. Elle effectue une action pour chaque élément restant dans le flux (qui sont les éléments null après le filtrage). Dans ce cas, elle affiche "Found a null element." pour chaque null trouvé.
  3. Enregistrez le fichier HelloJava.java.

  4. Compilez le programme dans le Terminal :

    javac HelloJava.java
  5. Exécutez le programme :

    java HelloJava

    Vous devriez voir une sortie similaire à ceci :

    Checking array for null values using Stream API:
    Found a null element.
    Found a null element.

    Cette sortie confirme que l'API Stream a réussi à identifier les deux éléments null dans le tableau. L'utilisation des flux peut rendre votre code plus lisible et plus expressif pour certaines opérations telles que le filtrage et le traitement de collections.

Compter les éléments null

Dans les étapes précédentes, nous avons appris à identifier les éléments null dans un tableau en utilisant à la fois une boucle for et l'API Stream. Parfois, au lieu de simplement identifier les éléments null, vous devrez peut-être savoir exactement combien d'éléments null sont présents dans un tableau. Dans cette étape, nous allons apprendre à compter le nombre d'éléments null en utilisant l'API Stream.

L'API Stream propose une méthode pratique appelée count() qui, lorsqu'elle est appliquée à un flux, renvoie le nombre d'éléments dans ce flux. Nous pouvons combiner cela avec l'opération filter() que nous avons utilisée précédemment pour ne compter que les éléments null.

Modifions encore une fois notre programme HelloJava.java pour compter les éléments null et afficher le nombre total.

  1. Ouvrez le fichier HelloJava.java dans l'éditeur WebIDE.

  2. Remplacez le code existant par le code suivant :

    import java.util.Arrays;
    import java.util.Objects;
    
    public class HelloJava {
        public static void main(String[] args) {
            String[] names = new String[5];
            names[0] = "Alice";
            names[1] = "Bob";
            names[2] = null;
            names[3] = "Charlie";
            names[4] = null;
    
            System.out.println("Counting null values using Stream API:");
    
            // Convert the array to a Stream
            long nullCount = Arrays.stream(names)
                                  // Filter for null elements
                                  .filter(Objects::isNull)
                                  // Count the remaining elements (which are null)
                                  .count();
    
            System.out.println("Total number of null elements: " + nullCount);
        }
    }

Voici ce qui est nouveau :

  • long nullCount = ... .count(); : Après avoir filtré le flux pour n'inclure que les éléments null, nous appelons l'opération terminale count(). Cette opération renvoie le nombre d'éléments dans le flux filtré sous forme de valeur long, que nous stockons dans la variable nullCount.
  • System.out.println("Total number of null elements: " + nullCount); : Cette ligne affiche le nombre final d'éléments null.
  1. Enregistrez le fichier HelloJava.java.

  2. Compilez le programme dans le Terminal :

    javac HelloJava.java
  3. Exécutez le programme :

    java HelloJava

Vous devriez voir la sortie suivante :

```plaintext
Counting null values using Stream API:
Total number of null elements: 2
```

Cette sortie montre que notre programme a correctement compté les deux éléments null dans le tableau. L'utilisation conjointe des méthodes filter() et count() de l'API Stream est un moyen efficace et lisible de compter des types spécifiques d'éléments dans une collection, y compris les valeurs null.

Vous avez maintenant appris trois façons différentes de gérer les valeurs null dans un tableau Java : en utilisant une boucle for traditionnelle pour vérifier chaque élément, en utilisant l'API Stream pour filtrer et identifier les éléments null, et en utilisant l'API Stream pour filtrer et compter les éléments null. Ces techniques sont fondamentales pour écrire un code Java robuste qui évite les NullPointerException.

Résumé

Dans ce laboratoire (lab), nous avons appris à vérifier la présence d'éléments null dans un tableau Java en utilisant différentes approches. Nous avons commencé par implémenter une boucle traditionnelle pour parcourir le tableau et vérifier explicitement chaque élément pour une valeur null à l'aide d'une condition if. Cette méthode offre une façon claire et fondamentale d'identifier les valeurs null et est utile pour comprendre le concept de base de la gestion des valeurs null dans les tableaux.

Nous avons ensuite exploré des techniques plus modernes et concises pour la détection des valeurs null. Le laboratoire a montré comment utiliser l'API Stream de Java pour vérifier efficacement la présence de valeurs null. Cette approche utilise des opérations de flux pour traiter les éléments du tableau et déterminer la présence de valeurs null de manière plus fonctionnelle. Enfin, nous avons appris à compter le nombre d'éléments null dans un tableau, offrant ainsi un moyen de quantifier l'étendue des valeurs null présentes. Ces méthodes offrent différents niveaux d'expressivité et d'efficacité pour gérer les valeurs null dans les tableaux Java.