Терминология Java Streams - разница между промежуточным - нетерминальным - PullRequest
0 голосов
/ 25 сентября 2019

Когда я читаю учебники по Java Stream API (Java Platform SE 8), я вижу некоторые упоминания, такие как терминальные операции и нетерминальные операции.

Является ли термин "нетерминальные операции" тем же, что и«промежуточные операции»?

Ответы [ 2 ]

6 голосов
/ 25 сентября 2019

«Нетерминал» на самом деле не определен, но я мог бы использовать его для охвата как «промежуточных» операций, так и выражений «источника», таких как

Stream.of("foo")

Хотя «промежуточный» не относится ни к началуни терминальные операции, например

.peak(() -> {/*...*/})
1 голос
/ 25 сентября 2019

Это то, что я собрал из учебника streams .

  1. A source - это метод объекта, который возвращает поток.
  2. промежуточная операция - это метод в потоке, который возвращает другой поток.
  3. A терминальная операция - это метод в потоке, который возвращает объект (илиvoid).

Комбинация всех трех ( источник , промежуточный и терминал ) составляет конвейер .

Наконец, все методы в потоке все вместе называются агрегатными операциями ;поэтому операции промежуточный и терминал являются одновременно агрегированием операций.


Фраза "нетерминальная операция" не появляется вДокументация Oracle;так технически это означает, что бы ни хотел сказать автор статьи .На практике это, вероятно, будет аналогично промежуточной операции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...