因此,我有一个自定义类,以及该类类型的arraylist。现在,我想仅使用构成该类对象的其他属性中可用的ID来检索此数组列表中对象的索引。
在网上看到了一些示例,但是我有点困惑,它们覆盖了hashCode()和equals(),在equals()中,它们正在检查所有属性,我只想检查ID值,因为每个对象ID都是唯一的。
public class MyClass {
private String ID;
private String name;
private String userName;
private String position;
// Constructors and getters and setters
}
所以,我想要的就是这段代码:
List<MyClass> list=new ArrayList<>();
//Values are populated into list
int i=list.indexOf(someObjectsID); //Where someObjectsID is a String and not a MyClass object
int我将在ID为someObjectsID的列表中获得MyClass对象的indexOf
有一个绝对有保证的,有效的解决方案。没有其他方法可以这么简单或有效地工作了。
该解决方案是只编写循环,而不要花哨。
for(int i = 0; i < list.size(); i++){
if (list.get(i).getId().equals(id)) {
return i;
}
}
return -1;
无需弄乱hashCode或等于。无需将索引强加到不是为其设计的流中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句