"может создать конечный поток из бесконечного потока" , безусловно, применимо только к limit()
, а не к skip()
.
skip
- это все равно что взять чашку воды из океана и задаться вопросом «сколько воды осталось в океане?» я взял из океана? "
Если поток бесконечен, то пропуск нескольких элементов все равно оставит вас в бесконечном потоке ...
Stream.iterate(0L, i -> i + 1).skip(100).forEach(System.out::println);
Теоретически это будет продолжаться вечно. Так что, скорее всего, это лишь небольшая неточность, которая ускользнула от рецензента книги.