/ / Android - Vérifier si une valeur existe dans un tableau - java, des tableaux

Android - Vérifier si une valeur existe dans un tableau - java, des tableaux

J'ai un tableau nommé "bob" qui contient des valeurs.

String[] bob = { "this", "is", "a", "really", "silly", "list" };

Comment savoir si une valeur "idiote" existe dans le tableau nommé bob sans itérer à travers celui-ci?

Réponses:

99 pour la réponse № 1

Vous pouvez utiliser List#contains méthode. Pour cela, vous devez convertir votre tableau en liste. Vous pouvez utiliser Arrays#asList() méthode pour que:

String[] bob = { "this", "is", "a", "really", "silly", "list" };

if (Arrays.asList(bob).contains("silly")) {
// true
}

6 pour la réponse № 2

Convertir le tableau en liste en utilisant statique Arrays.asList(T) et vérifier avec List.contains(Object) pour vérifier si un objet existe dans la collection renvoyée.

    String[] bob = { "this", "is", "a", "really", "silly", "list" };
System.out.println(Arrays.asList(bob).contains("silly"));

La méthode traditionnelle consisterait toutefois à parcourir le tableau et à vérifier chaque élément en utilisant equals ().


4 pour la réponse № 3

Si vous allez le vérifier beaucoup, vous trouverez peut-être plus efficace d’utiliser un HashSet:

String[] bob = { "this", "is", "a", "really", "silly", "list" };
Set<String> silly = new HashSet<String>(Arrays.asList(bob));
boolean isSilly = silly.contains("silly");

1 pour la réponse № 4

Voici un moyen facile de le faire:

    ArrayList list = new ArrayList(Arrays.asList(bob ));
if (list.contains("silly")) {
// my array has silly !
}

L'idée est de convertir votre tableau en un objet ListArray. mais cela consommerait plus de mémoire, alors assurez-vous que cela en vaut la peine avant de l'utiliser.

modifier

Si vous recherchez une performance et que vous économisez de la mémoire, vous pouvez utiliser à la place une recherche binaire, algorthem: De cette façon, vous n’avez pas à attribuer de nouveaux objets:

Arrays.sort(array)
int value = Arrays.binarySearch(array, "silly");
if (value != -1) {
// my array has silly !
}

0 pour la réponse № 5

le code ci-dessus ne fonctionne pas pour moi. types primitifs non autorisés je suppose.

je dois le faire manuellement:

char[] charlist = {"a","b","c","d"}
boolean arraycontains = false;
char tester = "c";
for (int y=0;y<charlist.length;y++){
if (charlist[y] == character) {
arraycontains = true;
break;
}
}

if (arraycontains) {
//true. array contains the tester;
}
else {
//false. array does not contain the tester;
}

:)


-1 pour la réponse № 6

Il sera probablement plus efficace de déclarer votre tableau comme Collection en premier lieu ou le transformer en un si vous n'êtes pas celui qui le déclare que d'appeler Arrays.asList() plusieurs fois:

Collection<String> bob = Arrays.asList("this", "is", "a", "really", "silly", "list");

if (bob.contains("silly")) {
//do stuff
}