代码是否可以通过调用列表中的方法从列表中获取对象的索引?
例如这样的东西:
class A{
String a="";
String b="";
}
List<A> alist= new ArrayList();
for (A a : alist) {
a.getIndexInList();
}
答案 0 :(得分:2)
没有内置解决方案,您可以使用外部计数器:
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
必须有效地定局。
答案 1 :(得分:2)
为什么不使用indexOf?如果我没记错的话,它是list的内置函数。
List<A> alist= new ArrayList<>();
for (A a : alist) {
int index = alist.indexOf(a);
}
只有列表可以为您提供索引。除非数组中的对象知道它在数组中,否则无法为您提供索引。