我遇到以下情况,我正在寻求建议,以便在 Java 中“正确”地做到这一点。
我有一个ArrayList
,其中包含一个对象列表(我们称之为对象A),
每个对象都由另外两个对象组成,我们称它们为
- 对象X
- 和对象Y
现在,在我的代码中,一个方法返回对象 Y 的实例。
现在我需要在 ArrayList
中找到相同对象 Y 的索引。
请问我该如何做,而不做可怕的循环?
我可以用什么来代替ArrayList
?
最佳答案
使用列表,在列表中查找具有特定值的对象只需要循环查看每个对象,句点。
解决该问题的更自然的选择是将对象放入 Map 中,使用 Y 作为键,使用对象作为值:
Map<Y, A> map = new HashMap<>();
void putA(A a) {
map.put(a.Y, a);
}
A getA(Y y) {
return map.get(y);
}
请注意,映射只为 Y 的每个不同值存储一个 A。它不适合将多个 A 与一个 Y 相关联。为此,您可以使用 Set 映射或类似的东西。
关于java - 什么样的集合类来获取数组中的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26262137/