检查 ArrayList 中是否存在值

新手上路,请多包涵

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

原文由 daniel__ 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

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

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

编辑: 请注意,为了使其正常工作,您需要正确覆盖 equals()hashCode() 方法。如果您使用的是 Eclipse IDE,那么您可以通过首先打开 CurrentAccount 对象的源文件并选择 Source > Generate hashCode() and equals()... 来生成这些方法

原文由 GreenMatt 发布,翻译遵循 CC BY-SA 2.5 许可协议

在检查值是否存在时,最好使用 HashSet 而不是 ArrayList

Java 文档 HashSet

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

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

原文由 SBA 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题