Est-il une manière concise pour effectuer une itération sur un flux de données tout en ayant accès à l'index dans le ruisseau?
Le meilleur que j'ai rencontré jusqu'à présent (défi 2) est
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());
ce qui semble plutôt décevant par rapport à l'LINQ exemple donné, il
string[] names = { "Sam", "Pamela", "Dave", "Pascal", "Erik" };
var nameList = names.Where((c, index) => c.Length <= index + 1).ToList();
Est-il une manière plus concise?
De plus, il semble que le zip a été déplacée ou supprimée...