检查数组列表中是否存在值

2022-08-31 06:13:15

如何检查 ?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();

答案 1

只需使用ArrayList.contains(desiredElement)即可。例如,如果您要从示例中查找 conta1 帐户,则可以使用如下内容:

if (lista.contains(conta1)) {
    System.out.println("Account found");
} else {
    System.out.println("Account not found");
}

编辑:请注意,为了使它起作用,您需要正确重写 equals()hashCode() 方法。如果您使用的是 Eclipse IDE,则可以通过首先打开对象的源文件并选择CurrentAccountSource > Generate hashCode() and equals()...


答案 2

在检查值是否存在时,最好使用 a 而不是 a。HashSetArrayList

Java docs for sayHashSet

此类为基本操作(添加、删除、包含和大小)提供恒定时间性能

ArrayList.contains()可能必须迭代整个列表才能找到您要查找的实例。