Il n'y a pas d'opérateur "deux-points", mais les deux points apparaissent à deux endroits:
1: Dans l'opérateur ternaire, par exemple:
int x = bigInt ? 10000 : 50;
Dans ce cas, l'opérateur ternaire agit comme un «si» pour les expressions. Si bigInt est vrai, alors x recevra 10000 assignés. Sinon, 50. Le signe deux-points signifie ici "autre".
2: Dans une boucle for-each:
double[] vals = new double[100];
for (double x : vals) {
}
Cela définit x à chacune des valeurs de «vals» à son tour. Donc, si vals contient [10, 20.3, 30, ...], alors x sera 10 sur la première itération, 20.3 sur la seconde, etc.
Remarque: je dis que ce n'est pas un opérateur parce que c'est juste de la syntaxe. Il ne peut apparaître dans aucune expression donnée par lui-même, et c'est juste une chance que l'opérateur for-each et l'opérateur ternaire utilisent un deux-points.