如何使用Java中的流来查找字符串集合中元素的索引?

时间:2017-10-21 08:47:26

标签: java stream

有一个字符串数组

Integer index = null;
String [] re = {"one", "two", "three"};
      Integer size = re.length;
      for(int i = 0; i < size; i++) {
            if(re[i].equals(text)) {
                  resultIndex = i;
            }
      }

如何使用stream api重写此代码?

1 个答案:

答案 0 :(得分:0)

每当需要使用循环索引时,流等效通常从IntStream.range开始。在这种情况下,代码看起来像

OptionalInt index = IntStream.range(0, re.length).filter(i -> re[i].equals(text)).findFirst();

尽管回答了你的问题,但我认为你被要求通过流替换所有的for循环是不合理的。在许多情况下,for循环更易于读写。

另请注意,在这种情况下,根本不需要使用for循环或流,因为您可以简单地执行

int index = Arrays.asList(re).indexOf(text);