Вы получите пустую коллекцию.Как collect объяснено в doc :
Выполняет изменяемую операцию сокращения элементов этого потока, используя Collector.
и изменяемое сокращение :
Операция изменяемого сокращения собирает входные элементы в изменяемый контейнер результатов, такой как Collection или StringBuilder, так как обрабатывает элементы в потоке.
Вы получите пустую коллекцию, потому что исходный ввод пуст или из-за операции фильтрации.
Спасибо за подсказки @Andy Turner.
Тот факт, что toList () накапливается в новом списке, означает, что он не возвращает ноль.
И документ получает объяснение для Collectors.toList () следующим образом:
Возвращает Collector, который накапливает входные элементы в новый список.
Мы можем получить из исходного кода
public static <T>
Collector<T, ?, List<T>> toList() {
return new CollectorImpl<>((Supplier<List<T>>) ArrayList::new, List::add,
(left, right) -> { left.addAll(right); return left; },
CH_ID);
}
, что он никогда не будетсделать нулевой вывод, но вы все равно можете получить нульВсе с настроенным коллекционером, как показывает Энди.