Java 7 ArrayList重复元素的索引给出了相同的索引值
我试图在ArrayList中找到重复元素2的索引-[1,2,3,4,2,5,6,2,7,2] 其输出应为[1,4,7,9]。但是我得到了[1,1,1,1]。请任何人帮助我获得正确的输出Java 7 ArrayList重复元素的索引给出了相同的索引值,java-7,Java 7,我试图在ArrayList中找到重复元素2的索引-[1,2,3,4,2,5,6,2,7,2] 其输出应为[1,4,7,9]。但是我得到了[1,1,1,1]。请任何人帮助我获得正确的输出 package com.practice.first; import java.util.ArrayList; import java.util.List; public class SampleList { public static void main(String[] args) {
package com.practice.first;
import java.util.ArrayList;
import java.util.List;
public class SampleList {
public static void main(String[] args) {
List<Integer> al = new ArrayList<Integer>();
al.add(1);
al.add(2);
al.add(3);
al.add(4);
al.add(2);
al.add(5);
al.add(6);
al.add(2);
al.add(7);
al.add(2);
for (int i = 0; i < al.size(); i++) {
if (al.get(i).equals(2)) {
System.out.println("Element 2 is present at " + al.indexOf(al.get(i)));
}
}
}
}
package com.practice.first;
导入java.util.ArrayList;
导入java.util.List;
公共类样本列表{
公共静态void main(字符串[]args){
List al=新的ArrayList();
al.添加(1);
al.添加(2);
al.添加(3);
al.添加(4);
al.添加(2);
al.添加(5);
al.添加(6);
al.添加(2);
al.添加(7);
al.添加(2);
对于(int i=0;i
来自:
返回此列表中指定元素第一次出现的索引,如果此列表不包含该元素,则返回-1。更正式地说,返回最低的索引i(o==null?get(i)==null:o.equals(get(i)),或者如果没有这样的索引,返回-1
因此,indexOf将始终返回元素的第一次出现,即使它在列表中多次出现。要获得正确的索引,只需打印循环变量i
,如下所示:
for (int i = 0; i < al.size(); i++) {
if (al.get(i).equals(2)) {
System.out.println("Element 2 is present at " + i);
}
}
for(int i=0;i
您的问题在al.indexOf(al.get(i))
中。发件人:
返回此列表中指定位置的元素get(int index)
返回此列表中指定元素第一次出现的索引,如果此列表不包含该元素,则返回-1indexOf(Object o)
System.out.println("Element 2 is present at " + i);