Пытаюсь вникнуть в Java8 Streams API и не перестаю поражаться, почему все так сложно сделано?
Пример C# и Python показывает что почти все прекрасно решается ключевым словом yield и сопутствующей поддержкой со стороны языка, в то время как в Java наворотили какую-то безумную иерархию.
К примеру, естественное желание вернуть ограниченный набор значений из потока превращается в довольно многословную пляску с AbstractSpliterator.
Более того, AbstractSpliterator является довольно низкоуровневой конструкцией, и, видимо, правильная его реализация в сложных случаях будет тем еще вывихом мозга.
Java-way это и есть многословность, но есть ли примеры, где java-стримы позволяют сделать что-то проще, чем питоновские и C#-ские итераторы?
p.s. чертов Lazarus, подставил старое значение в первый вариант заголовка.
Здравствуйте, Klag, Вы писали:
K>Java-way это и есть многословность, но есть ли примеры, где java-стримы позволяют сделать что-то проще, чем питоновские и C#-ские итераторы?
Здравствуйте, GarryIV, Вы писали:
GIV>Здравствуйте, Klag, Вы писали:
K>>Java-way это и есть многословность, но есть ли примеры, где java-стримы позволяют сделать что-то проще, чем питоновские и C#-ские итераторы?
GIV>parallel?
Как минимум в C# делается так же. Даже лучше, потому что AsParallel это extension method, который будет работать на любом IEnumerabe