有没有办法通过调用列表上的方法来从列表中检索对象的索引?例如,这样的事情:
class A{
String a="";
String b="";
}
List<A> alist= new ArrayList();
for (A a : alist) {
a.getIndexInList();
}
为什么不使用indexOf?如果我没记错的话,这是列表的内置函数。
List<A> alist= new ArrayList<>();
for (A a : alist) {
int index = alist.indexOf(a);
}
只有列表才能给你索引。除非数组中的对象知道它在数组中,否则它无法为您提供它的索引。
没有内置解决方案,您可以使用外部计数器:
List<A> alist= new ArrayList();
int counter = 0;
for (A a : alist) {
// logic
counter++;
}
您还可以创建一个以索引作为键的映射,例如:
IntStream.range(0, alist.size()).mapToObj(Integer::valueOf)
.collect(Collectors.toMap(
Function.identity(),
alist::get
));
但是
alist
需要有效地最终确定。