¿Cómo puedo verificar si un valor que está escrito en el escáner existe en 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();
Respuestas:
Simplemente use ArrayList.contains (desiredElement) . Por ejemplo, si está buscando la cuenta conta1 de su ejemplo, podría usar algo como:
Editar: tenga en cuenta que para que esto funcione, deberá anular correctamente los métodos equals () y hashCode () . Si está utilizando Eclipse IDE, puede generar estos métodos abriendo primero el archivo fuente de su
CurrentAccount
objeto y seleccionandoSource > Generate hashCode() and equals()...
fuente
Es mejor usar a
HashSet
que anArrayList
cuando verifica la existencia de un valor. Documentos de Java paraHashSet
dice:"This class offers constant time performance for the basic operations (add, remove, contains and size)"
ArrayList.contains()
Es posible que deba iterar toda la lista para encontrar la instancia que está buscando.fuente
Por favor, consulte mi respuesta en esta publicación .
No es necesario iterar sobre el
List
solo sobrescribir elequals
método.Usar en
equals
lugar de==
Llámalo así:
fuente
this.name.equals(employee.getName())
Podemos usar el
contains
método para verificar si existe un elemento si hemos proporcionado la implementaciónequals
yhashCode
si no, la referencia de objeto se usará para la comparación de igualdad. También en el caso de una listacontains
esO(n)
operación en la que como esO(1)
deHashSet
por lo mejor para su uso posterior. En Java 8, también podemos usar secuencias para verificar elementos en función de su igualdad o de una propiedad específica.Java 8
fuente
boolean itemExistsBasedOnProp = selectedR.stream().map(Request::getDesc).anyMatch(cn::equals);
ahora lo necesito para extraer ese artículo! Es posible ??findAny
: docs.oracle.com/javase/8/docs/api/java/util/stream/…java.util.Collection#stream
Solo úsalo
.contains
. Por ejemplo, si estuviera verificando si una ArrayListarr
contiene un valorval
, simplemente se ejecutaríaarr.contains(val)
, lo que devolvería una representación booleana si el valor está contenido. Para obtener más información, consulte los documentos para.contains
.fuente
Cuando la lista de matrices contiene un objeto de tipo de datos primitivo.
Cuando la lista de matrices contiene un objeto de tipo de datos definido por el usuario.
¿Cómo comparar los atributos de Objetos en una ArrayList?
Espero que esta solución te ayude. Gracias
fuente
fuente