Comment puis-je vérifier si la valeur existe dans ArrayList par son index?Java: ArrayList: Détermine si l'entrée existe par son index
Java offre contient la méthode (Object), mais contient pas (index entier) Méthode
Merci
Comment puis-je vérifier si la valeur existe dans ArrayList par son index?Java: ArrayList: Détermine si l'entrée existe par son index
Java offre contient la méthode (Object), mais contient pas (index entier) Méthode
Merci
Pas du tout sûr de votre question. Vous parlez de voir si une entrée "existe" mais vous parlez de Java sans méthode remove(Object index)
. En ce qui concerne remove: Il existe la méthode remove(int) sur l'interface List
implémentée par ArrayList
. (Java List
s sont indexées par int
, non par Object
.)
Quant à savoir si une entrée « existe » à un indice donné, si la méthode size()
de la liste est supérieur à l'indice (et l'indice est non-négatif), puis il y a une entrée à l'index:
if (index >= 0 && index < list.size()) {
// An entry exists; hey, let's remove it
list.remove(index);
}
Merci. le poste était en désordre parce que j'ai accidentellement confondu "supprimer" et "contient" – Andrey
FFR, le document de Java spécifie quand vous recevriez et IndexOutOfBoundsException, inversant ainsi cette logique vous donnerait des index valides. – Drew
Solution simple et étonnante, travaillé comme un chaud! Merci et upvoted –
Comment puis-je vérifier si la valeur existe dans ArrayList par son indice?
Essayez ceci:
int aIndex = ...;
boolean aIsExistByIndex = (aIndex >= 0) && (aIndex < AL.size())
Hope this aide :-p
Je ne vois pas pourquoi cette réponse a été votée * down *; l'expression proposée est correcte. Il manque juste une explication amplificatrice. – seh
Merci, j'ai utilisé votre code. Je ne sais pas qui a voté, mais je pense qu'il a été rejeté parce qu'au début, il manquait une partie du code (probablement posté accidentellement oublié de le finir) – Andrey
Il était probablement en partie ma faute comme j'avais initialement oublié l'évasion > 'et' <':-p. – NawaMan
Si vous avez un tableau clairsemé (qui peut contenir des valeurs nulles) vous pouvez vérifier cela aussi bien.
public static boolean isSet(List<?> list, int index) {
return index >=0 && index < list.size() && list.get(index) != null;
}
Je ne sais pas pourquoi vous voulez que l'index soit le type entier, mais si vous le faites, vous devriez vérifier null aussi bien. Autoriser une valeur nulle est la seule bonne raison d'avoir un type entier.
public static boolean isSet(List<?> list, Integer index) {
return index != null && index >=0 && index < list.size() && list.get(index) != null;
}
Vous devriez peut-être envisager d'utiliser un HashMap au lieu d'un ArrayList. Il y a une raison pour laquelle la méthode exist (int index) ne sont pas mis en œuvre pour ArrayList (principalement parce qu'il faut pour beaucoup de mémoire pour mettre en œuvre un ArrayList pour les index des spécificités):
int i = 3; int j = 4;
HashMap<Integer, Integer> hm = new HashMap<Integer, Integer>();
hm.put(3, 4);
hm.containsKey(3);
Comment est-ce lié à Sharepoint? –
Je ne sais pas comment ce tag est arrivé, supprimé maintenant, merci de le signaler – Andrey