我正在嘗試使用Java 8流和lambda表達式進行順序搜索。這裏是我的代碼使用流API查找列表中項目的所有索引
List<Integer> list = Arrays.asList(10, 6, 16, 46, 5, 16, 7);
int search = 16;
list.stream().filter(p -> p == search).forEachOrdered(e -> System.out.println(list.indexOf(e)));
Output: 2
2
我知道list.indexOf(e)
始終打印中第一次出現的索引。我如何打印所有索引?
我不認爲你可以用這種結構做。一旦你過濾了,你就失去了索引信息。如果你在這之後做了索引打印,你會得到過濾列表中的索引。 – 2014-10-03 12:38:03
可能的重複http://stackoverflow.com/q/18552005/1407656或http://stackoverflow.com/q/22793006/1407656 – toniedzwiedz 2014-10-03 12:38:14
@Tom在給定的帖子中查詢的內容。當我嘗試在查詢時給出編譯錯誤。 – mallikarjun 2014-10-03 12:49:33