Par exemple, si vous souhaitez "sélectionner au hasard dans une liste de quelque chose et placer les éléments déjà sélectionnés dans l'ensemble", "Si l'élément sélectionné n'est pas dans l'ensemble, il sera ajouté, et si c'est le cas, le message d'erreur sera traité." C'est intuitif
Ajouter si non, erreur si
Set<Integer> set = new HashSet<>();
for (int i = 0; i < 10; i++){
int r = (int)(Math.random() * 10);
if (!set.contains(r)) {
set.add(r);
} else {
System.out.println(r + "Est déjà en");
}
}
De cette façon, je veux écrire que je devrais vérifier avec contient avant de le mettre. Cependant, vous pouvez réellement l'écrire comme ceci.
Erreur si non ajoutée
Set<Integer> set = new HashSet<>();
for (int i = 0; i < 10; i++){
int r = (int)(Math.random() * 10);
if (!set.add(r)) {
System.out.println(r + "Est déjà en");
}
}
Vous pouvez l'ajouter soudainement et le mettre en place sans vérifier à l'avance s'il est inclus.
En fait, je ne vois pas beaucoup de lumière, mais ajout de Interface de la collection y compris Set La méthode renvoie un booléen. En regardant le contenu,
Garantie que l'élément spécifié est stocké dans cette collection (opération facultative). Renvoie true si la collection a changé suite à cet appel. Cette collection n'autorise pas les éléments en double et renvoie false si l'élément spécifié est déjà inclus.
add n'est pas une méthode "add", mais une méthode "garantie que l'élément est présent", et renvoie le résultat indiquant si la collection a changé avant ou après. Dans le cas de Set, si l'élément à insérer existe déjà, il n'est pas ajouté. Autrement dit, Set n'est jamais modifié, il renvoie donc false. Cela peut être utilisé tel quel pour juger "s'il a été inclus ou non". En même temps, s'il n'y en a pas, l'ajout est déjà terminé, il n'est donc pas nécessaire de réécrire le processus à ajouter à "s'il n'y en a pas".
Le code doit être difficile à lire intuitivement. Existe-t-il une scène autre que Set qui peut utiliser les propriétés de Collection # add ...?
Recommended Posts