完璧=普遍的とは言えないが、、
例)
List<String> list = Arrays.asList("a", "b", "c", "d", "e"); int findIndex = IntStream.range(0, list.size()).map(i->list.get(i).equals("c") ? i : -1).max().orElse(-1);;
でも、2つ以上マッチする場合は、最後のインデックスを取得することになる。
それでなら、
int findIndex = IntStream.range(0, list.size()).map(i->list.get(i).equals("c") ? i : -1) .filter(i->i >= 0).min().getAsInt();
これで最初に見つかるインデックスであり、全てのインデックスは、
IntStream.range(0, list.size()).map(i->list.get(i).equals("c") ? i : -1).filter(i->i >= 0)