Como posso verificar se existe um valor escrito no scanner em um arquivo 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();
Respostas:
Basta usar ArrayList.contains (desejadoElement) . Por exemplo, se você estiver procurando a conta conta1 do seu exemplo, poderá usar algo como:
Edit: Observe que, para que isso funcione, você precisará substituir adequadamente os métodos equals () e hashCode () . Se você estiver usando o Eclipse IDE, poderá gerar esses métodos abrindo primeiro o arquivo de origem do seu
CurrentAccount
objeto e selecionandoSource > Generate hashCode() and equals()...
fonte
É melhor usar a
HashSet
que aArrayList
quando você está verificando a existência de um valor. Os documentos Java paraHashSet
diz:"This class offers constant time performance for the basic operations (add, remove, contains and size)"
ArrayList.contains()
pode ser necessário repetir a lista inteira para encontrar a instância que você está procurando.fonte
Por favor, consulte a minha resposta neste post .
Não há necessidade de iterar sobre
List
apenas substituir oequals
método.Use em
equals
vez de==
Chame assim:
fonte
this.name.equals(employee.getName())
Podemos usar o
contains
método para verificar se um item existe, se tivermos fornecido a implementaçãoequals
ehashCode
, em seguida, a referência do objeto será usada para comparação de igualdade. Também no caso de uma listacontains
éO(n)
operação onde como éO(1)
paraHashSet
assim melhor usar mais tarde. No Java 8, podemos usar fluxos também para verificar o item com base em sua igualdade ou em uma propriedade específica.Java 8
fonte
boolean itemExistsBasedOnProp = selectedR.stream().map(Request::getDesc).anyMatch(cn::equals);
agora preciso extrair esse item! é possível ??findAny
: docs.oracle.com/javase/8/docs/api/java/util/stream/…java.util.Collection#stream
Apenas use
.contains
. Por exemplo, se você estivesse verificando se um ArrayListarr
contém um valorval
, você simplesmente executariaarr.contains(val)
, o que retornaria um booleano representando se o valor estivesse contido. Para mais informações, consulte os documentos para.contains
.fonte
Quando Array List contém o objeto Primitive DataType.
Quando a Lista de matrizes contém o objeto DataType definido pelo usuário.
Como comparar atributos de objetos em um ArrayList?
Espero que esta solução o ajude. obrigado
fonte
fonte