【问题标题】:List<Character> how to get specific index?List<Character> 如何获取特定索引?
【发布时间】:2018-12-17 15:30:01
【问题描述】:

当列表中的元素重复多次时,如果列表中只有第一个和最后一个元素的方法,如何获取列表中的特定索引?

List<Character> listString = new ArrayList<>();

listString.add(0, 'A');
listString.add(1, 'A');
listString.add(2, 'A');
listString.add(3, 'A');


int index = listString.indexOf('A');
int indexLast = listString.lastIndexOf('A');

System.out.println(index);
System.out.println(indexLast);

输出:

0

3

那么我怎样才能获得“A”也在索引 1 和 2 中的信息?

【问题讨论】:

  • 你可以使用List.get 来检查任何索引处的值...

标签: java list position


【解决方案1】:

使用典型的 for 循环:

List<Integer> indices = new ArrayList<>();
for (int i = 0; i < listString.size(); i++) 
     if(listString.get(i) == 'A')
        indices.add(i);

或:

int[] indices = IntStream.range(0, listString.size())
                         .filter(i -> listString.get(i) == 'A')
                         .toArray();

【讨论】:

  • 感谢您的快速回复
【解决方案2】:

你可以像这样打印你的答案(写完上面的代码之后):

for (int i = 0; i <indices.size() ; i++) {
        System.out.println(indices.get(i));
    }

【讨论】:

  • 感谢您的帮助
猜你喜欢
  • 2019-04-21
  • 2013-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-23
  • 2020-04-10
  • 2022-06-23
  • 2018-05-31
相关资源
最近更新 更多