2017-10-21 34 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

沒問題。很高興我能提供幫助。 –