如何获取列表中匹配值的每个索引

时间:2015-09-08 10:09:21

标签: java list indexof

我有一个包含0到10值的列表(10000个元素)。我想获得包含特定值的列表的所有索引。 (实际上我需要得到每个值的所有索引)。

这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:1)

List<Integer> indexList = new ArrayList<Integer>();
for(int i=0; i<list.size(); i++){
   if(list.get(i) == 0){
      indexList.add(i);
   }
}

indexList包含值为0

的所有索引

答案 1 :(得分:-1)

List<Integer> indexList = new ArrayList<Integer>();
for(int i=0, j=list.size(); i<list.size()&& j>0 && i<=j; i++,j--){
   if(list.get(i) == 0){
      indexList.add(i);
   }
   if(list.get(j) == 0){
      indexList.add(j);
   }
}

这里的代码数组是从两个方向追踪的。 因此,在一个循环中,将检查2个值。这提高了从O(n)到O(n / 2)的性能。