47 votes

Comment puis-je vérifier si un élément existe dans un ensemble d'éléments ?

Dans une instruction if en Java, comment puis-je vérifier si un objet existe dans un ensemble d'éléments. Par exemple, dans ce scénario, je dois valider que le fruit sera une pomme, une orange ou une banane.

if (fruitname in ["APPLE", "ORANGES", "GRAPES"]) {
    //Do something
}

C'est une chose très insignifiante, mais je n'ai pas pu trouver un moyen court et concis d'y parvenir.

70voto

Peter Lawrey Points 229686
static final List<String> fruits = Arrays.asList("APPLE", "ORANGES", "GRAPES");

if (fruits.contains(fruitname))

Si votre liste était beaucoup plus grande, un ensemble serait plus efficace.

static final Set<String> fruits = new HashSet<String>(
       Arrays.asList("APPLE", "ORANGES", "GRAPES", /*many more*/));

9voto

Gareth Davis Points 16190

pour plus d'exhaustivité en utilisant google-collections/goyave :

import com.google.common.collect.Sets;

static final Set<String> fruit = Sets.newHashSet("APPLE", "ORANGES", "GRAPES");

if (fruit.contains(fruitname))

ou en utilisant les anciennes classes jdk du plan :

static final Set<String> fruit = new HashSet<String>(Arrays.asList("APPLE", "ORANGES", "GRAPES"));

1voto

smas Points 8299

Si vous avez Set, List, Map de fruits qui ont tous le même parent : Collection, vous pouvez essayer cet exemple.

String fruitName = "Orange";
Collection<String> fruits = ... // set of fruits
if (fruits.contains(fruitName)) {
    ...
}

(Pour Java 8/9/10 façons de créer littéralement Set s'il vous plaît voir cette réponse SO.)

Soyez prudent avec la sensibilité à la casse (Orange != orange).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X