[JAVA] Ajouter si non dans l'ensemble, message d'erreur si

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".

Bien que

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

Ajouter si non dans l'ensemble, message d'erreur si
Erreur dans ./gradlew: symbole introuvable
Le message d'erreur du périphérique ne s'affiche pas correctement.
Maven [ERROR] Le chemin de la classe Bootstrap n'est pas défini avec -source 1.7
Bibliothèque ffi non chargée: Correction d'une erreur dans /opt/brew/opt/libffi/lib/libffi.6.dylib
N'écrivez pas de code si (isAdmin == true) en Java
Docker Compose ne démarre pas avec l'affichage d'erreur docker.credentials.errors.InitializationError
[Erreur] L'application ne s'affiche pas dans l'environnement de production
Définir CookieSpec dans HttpClient 4.3
Je veux FlashAttribute au printemps même si j'ai défini un proxy inverse! (ne pas faire)
Lorsqu'une erreur se produit même si la validation n'est pas définie
Que faire si FacesMessage est défini mais pas affiché
Si les éléments du sous-module ne sont pas trouvés dans Play Framework
Vérifiez si les transactions Ethereum ne sont pas incluses dans le bloc