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.
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.
Ouvrez le fichier
HelloJava.javadans l'éditeur WebIDE. Si vous ne l'avez pas ouvert, vous le trouverez dans l'Explorateur de fichiers à gauche, dans le dossierproject.Remplacez le code existant dans
HelloJava.javapar 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énamesqui peut contenir 5 objetsString. Lorsque vous créez un tableau d'objets de cette manière, les éléments sont automatiquement initialisés ànull.names[2] = null;etnames[4] = null;: Nous assignons explicitementnullaux éléments d'indice 2 et 4.for (int i = 0; i < names.length; i++): Il s'agit d'une boucleforstandard 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 instructionifvérifie si l'élément à l'indice actueliest égal ànull.System.out.println("Element at index " + i + " is null.");: Si l'élément estnull, cette ligne est exécutée.System.out.println("Element at index " + i + " is: " + names[i]);: Si l'élément n'est pasnull, cette ligne est exécutée, affichant la valeur de l'élément.
Enregistrez le fichier
HelloJava.java(Ctrl+S ou Cmd+S).Maintenant, compilez le programme modifié. Ouvrez le Terminal en bas de l'éditeur WebIDE et exécutez la commande suivante :
javac HelloJava.javaS'il n'y a pas d'erreurs, la compilation est réussie.
Enfin, exécutez le programme compilé :
java HelloJavaVous 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
nulldans 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.
Ouvrez le fichier
HelloJava.javadans l'éditeur WebIDE.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 classeArrayspour utiliser sa méthodestream().import java.util.Objects;: Nous importons la classeObjectspour utiliser la méthodeisNull(), qui est un moyen pratique de vérifier si un objet estnull.Arrays.stream(names): Cette ligne convertit notre tableaunamesen unStreamd'objetsString..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 conditionObjects.isNull(element)est vraie (c'est-à-dire les éléments qui sontnull).Objects::isNullest une référence de méthode, une forme abrégée d'une expression lambdaname -> 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émentsnullaprès le filtrage). Dans ce cas, elle affiche "Found a null element." pour chaquenulltrouvé.
Enregistrez le fichier
HelloJava.java.Compilez le programme dans le Terminal :
javac HelloJava.javaExécutez le programme :
java HelloJavaVous 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
nulldans 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.
Ouvrez le fichier
HelloJava.javadans l'éditeur WebIDE.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émentsnull, nous appelons l'opération terminalecount(). Cette opération renvoie le nombre d'éléments dans le flux filtré sous forme de valeurlong, que nous stockons dans la variablenullCount.System.out.println("Total number of null elements: " + nullCount);: Cette ligne affiche le nombre final d'élémentsnull.
Enregistrez le fichier
HelloJava.java.Compilez le programme dans le Terminal :
javac HelloJava.javaExé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.



