Comment puis-je vérifier si une valeur écrite dans le scanner existe dans un ArrayList
?
List<CurrentAccount> lista = new ArrayList<CurrentAccount>();
CurrentAccount conta1 = new CurrentAccount("Alberto Carlos", 1052);
CurrentAccount conta2 = new CurrentAccount("Pedro Fonseca", 30);
CurrentAccount conta3 = new CurrentAccount("Ricardo Vitor", 1534);
CurrentAccount conta4 = new CurrentAccount("João Lopes", 3135);
lista.add(conta1);
lista.add(conta2);
lista.add(conta3);
lista.add(conta4);
Collections.sort(lista);
System.out.printf("Bank Accounts:" + "%n");
Iterator<CurrentAccount> itr = lista.iterator();
while (itr.hasNext()) {
CurrentAccount element = itr.next();
System.out.printf(element + " " + "%n");
}
System.out.println();
Réponses:
Utilisez simplement ArrayList.contains (desireElement) . Par exemple, si vous recherchez le compte conta1 de votre exemple, vous pouvez utiliser quelque chose comme:
Edit: Notez que pour que cela fonctionne, vous devrez remplacer correctement les méthodes equals () et hashCode () . Si vous utilisez Eclipse IDE, vous pouvez faire générer ces méthodes en ouvrant d'abord le fichier source de votre
CurrentAccount
objet et en sélectionnantSource > Generate hashCode() and equals()...
la source
Mieux vaut utiliser a
HashSet
que anArrayList
lorsque vous vérifiez l'existence d'une valeur. Documentation Java pourHashSet
dit:"This class offers constant time performance for the basic operations (add, remove, contains and size)"
ArrayList.contains()
Vous devrez peut-être parcourir toute la liste pour trouver l'instance que vous recherchez.la source
Veuillez vous référer à ma réponse sur ce post .
Il n'est pas nécessaire d'itérer sur
List
laequals
méthode juste d'écraser .Utiliser à la
equals
place de==
Appelez ça comme ça:
la source
this.name.equals(employee.getName())
Nous pouvons utiliser la
contains
méthode pour vérifier si un élément existe si nous avons fourni l'implémentation deequals
ethashCode
sinon la référence d'objet sera utilisée pour la comparaison d'égalité. En outre , en cas d'une listecontains
estO(n)
opération où comme il estO(1)
pourHashSet
si préférable d'utiliser plus tard. Dans Java 8, nous pouvons également utiliser des flux pour vérifier l'élément en fonction de son égalité ou en fonction d'une propriété spécifique.Java 8
la source
boolean itemExistsBasedOnProp = selectedR.stream().map(Request::getDesc).anyMatch(cn::equals);
maintenant j'en ai besoin pour extraire cet élément! c'est possible ??findAny
: docs.oracle.com/javase/8/docs/api/java/util/stream/…java.util.Collection#stream
Utilisez simplement
.contains
. Par exemple, si vous vérifiiez si une ArrayListarr
contient une valeurval
, vous exécuteriez simplementarr.contains(val)
, ce qui renverrait un booléen représentant si la valeur est contenue. Pour plus d'informations, consultez la documentation de.contains
.la source
Lorsque Array List contient un objet de Primitive DataType.
Lorsque Array List contient un objet de type de données défini par l'utilisateur.
Comment comparer les attributs des objets dans un ArrayList?
J'espère que cette solution vous aidera. Merci
la source
la source