如何获取列表对象的索引[重复]

问题描述 投票:0回答:2

有没有办法通过调用列表上的方法来从列表中检索对象的索引?例如,这样的事情:

class A{
    String a="";
    String b="";
}

List<A> alist= new ArrayList();

for (A a : alist) {
    a.getIndexInList();
}
java list for-loop arraylist counter
2个回答
3
投票

为什么不使用indexOf?如果我没记错的话,这是列表的内置函数。

 List<A> alist= new ArrayList<>();
 for (A a : alist) {
     int index = alist.indexOf(a);
 }

只有列表才能给你索引。除非数组中的对象知道它在数组中,否则它无法为您提供它的索引。


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
需要有效地最终确定。

© www.soinside.com 2019 - 2024. All rights reserved.