猿问

有一种简洁的方法可以在Java 8中使用索引来迭代流吗?

有一种简洁的方法可以在Java 8中使用索引来迭代流吗?

在访问流中的索引时,是否有一种简单的方法来迭代流?

String[] names = {"Sam","Pamela", "Dave", "Pascal", "Erik"};List<String> nameList;Stream<Integer> indices = intRange(1, names.length).boxed();
nameList = zip(indices, stream(names), SimpleEntry::new)
        .filter(e -> e.getValue().length() <= e.getKey())
        .map(Entry::getValue)
        .collect(toList());

与LINQ示例相比,这似乎相当令人失望。

string[] names = { "Sam", "Pamela", "Dave", "Pascal", "Erik" };var nameList = names.Where((c, index) => c.Length <= index + 1).ToList();

有没有更简洁的方法?

更重要的是,拉链似乎已经移动或被移除.


慕桂英546537
浏览 889回答 3
3回答

慕码人8056858

既然番石榴21,你可以用Streams.mapWithIndex()示例(来自官方医生):Streams.mapWithIndex( &nbsp;&nbsp;&nbsp;&nbsp;Stream.of("a",&nbsp;"b",&nbsp;"c"), &nbsp;&nbsp;&nbsp;&nbsp;(str,&nbsp;index)&nbsp;->&nbsp;str&nbsp;+&nbsp;":"&nbsp;+&nbsp;index))&nbsp;//&nbsp;will&nbsp;return&nbsp;Stream.of("a:0",&nbsp;"b:1",&nbsp;"c:2")
随时随地看视频慕课网APP

相关分类

Java
我要回答