2017-10-21 38 views
-2

有一个字符串数组如何使用Java中的流找到字符串集合中元素的索引?

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; 
      } 
     } 

如何重写这个代码在使用流API?

+3

欢迎堆栈溢出!请参加[旅游],环顾四周,并仔细阅读[帮助],特别是[*我如何提出一个好问题?](/ help /如何问)您尝试了什么?你的研究成果是什么?为什么特别使用流?如果是为了上课,你的老师或课程将会提供必要的信息,参考你的课堂材料和笔记。 –

+2

这里使用Streams的要点是? – Tom

+0

对不起。我编辑帖子 – DmitryJS

回答

0

无论何时您需要使用循环索引,相应的流通常开始IntStream.range。在这种情况下,代码看起来像

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

尽管回答你的问题,我不认为这是合理的,你已经被要求去通过流置换了循环中的所有。有很多情况下for循环读取和写入要简单得多。

还要注意,在这种情况下,没有必要使用一个for循环或流,因为在所有你可以简单地做

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

是的,谢谢,在这种情况下,即时将我的代码替换为..indexOf() – DmitryJS

+0

没问题。很高兴我能提供帮助。 –