gpt4 book ai didi

java - 从 ArrayList 中查找项目索引的更好方法

转载 作者:搜寻专家 更新时间:2023-10-30 21:19:31 25 4
gpt4 key购买 nike

首先,如果我错了,请指正。我想从 ArrayList<CustomType> 中找到项目的索引(即字符串值)不使用 For 循环。

POJO:

id;
name;

代码:

ArrayList<POJO> list = new ArrayList<POJO>;

//Lots of data added to these list...

现在我想在不使用下面这种 for 循环的情况下从数组列表中找到特定名称的 id。

String id = null;
// TODO Auto-generated method stub
for (int i = 0; i < list.size(); i++) {
if("ABCD".equalsIgnoreCase(list.get(i).getName())) {
id = list.get(i).getId();
break;
}
}

理想情况下,我不想实现 For 循环,因为在某些情况下,List 中有 500 多个数据,使用 For 循环查找索引并不是执行此操作的好方法。

最佳答案

您可以使用 list.indexOf(),但为了使其正常工作,您需要覆盖您的 equalshasCode POJO.

默认情况下,如果两个对象具有相同的引用,它们将被视为相等。您可以覆盖 equals 以适合您的情况:

public boolean equals(Object o) {
if (!(o instanceof POJO)) {
return false;
}
POJO other = (POJO) o;
return name.equalsIgnoreCase(other.getName());
}

覆盖 equals 会建议您覆盖 hashCode。例如:

public int hashCode() {
return name.hashCode();
}

关于java - 从 ArrayList<CustomObject> 中查找项目索引的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13341401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com