Bonjour,

J'aurais besoin de votre aide car je me posais une question sur le fonctionnement d'un bout de code que j'ai eu lors d'un partiel de JAVA cette année, n'ayant pas eut la correction.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
import java.util.*
 
public class Find (
        public statis void main(String[] args) {
               Set<String> s = new HashSet<String>();
               for (String a : args){
                    if (!s.add(a))
                        System.out.println(a);
                    }
               System.out.println(s.size() + "???" + s);
        }
}
Sachant que for (String a : args) {} indique que l'on traite un par un tous les arguments suivant "toto" "titi" "toto" "tata" "titi"

Qu'affiche ce programme ?

C'est surtout la ligne !s.add(a) que j'ai du mal à comprendre

Est-ce qu'il fait System.out.println(a) lorsqu'il a réussi à l'insérer ou lorsqu'il n'y a plus d'insertion à faire ?

Et qu'affiche-t-il pour le 's' dans System.out.printl(s.size() + "???" + s);

Merci d'avance pour votre aide