Мне просто потребовалось некоторое время, чтобы начать изучать шум java-8 о потоках и лямбдах. Меня удивило, что вы не можете применять операции Stream, такие как .map(), .filter() непосредственно на java.util.Collection. Существует ли техническая причина, по которой интерфейс java.util.Collection не был расширен с помощью
по умолчанию реализации этих операций Stream?
Пойдем немного, я вижу множество примеров кодирования людей по шаблону:
List<String> list = someListExpression;
List<String> anotherList = list.stream().map(x -> f(x)).collect(Collectors.toList());
который становится очень неуклюжим, если в вашем коде есть много этих потоков. Поскольку .stream() и .collect() полностью не соответствуют тому, что вы хотите выразить, вы хотели бы сказать:
List<String> list = someListExpression;
List<String> anotherList = list.map(x -> f(x));