如何获取列表对象的索引

时间:2019-09-05 05:10:57

标签: java arrays arraylist

代码是否可以通过调用列表中的方法从列表中获取对象的索引?

例如这样的东西:

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

List<A> alist= new ArrayList();

for (A a : alist) {
    a.getIndexInList();
}

2 个答案:

答案 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);
 }

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