2010-07-22 35 views
1

Existe-t-il un moyen facile de vérifier un conteneur s'il contient une valeur, pas un objet? Ceci est le code que je voudrais travailler:Conteneur Java .contains question

 

String[] i = {"One", "Two", "Three"}; 

if (Arrays.asList(i).contains("One")){ 
return true; 
} 
 

est-il un moyen de faire ceci ou devrai-je faire une boucle à travers le réseau moi-même?

+0

Je l'ai copié mot pour mot et cela a fonctionné. – corsiKa

Répondre

3

Cela devrait fonctionner correctement. Une chaîne est un objet, vous pouvez donc utiliser la surcharge contains(Object) (basée sur equals).

+0

Je suppose qu'il est logique que 'contains()' utilise '.equals' au lieu de' == '. Je pense que je suis juste en train de penser ça. – Falmarri

1

Avez-vous essayé ce code? Ça devrait marcher. Les collections Java utilisent equals pour déterminer l'égalité contains. Ainsi, si la méthode equals sur un objet teste l'égalité de valeur (plutôt que de référence), ce que vous voulez fonctionnera.

Les chaînes vérifient si leurs valeurs sont identiques.

0

Pour répéter tout le monde, String est un objet, donc cela fonctionnera très bien. La méthode contains() utilise Object.equals() pour déterminer si l'objet donné existe dans la liste.

1
class ContainsTest { 
    public static void main(String[] args) { 
     String[] i = {"One", "Two", "Three"}; 
     System.out.println(java.util.Arrays.asList(i).contains("One")); 
    } 
} 

SORTIE

----jGRASP exec: java ContainsTest 

true 

----jGRASP: operation complete. 

Je dirais que cela fonctionne.