При изучении Stream API, часто встречал употребление выражений lazy и eager операторы, но нигде толком не мог найти нормальное определение этих понятий.
Может кто нибудь доходчиво объяснить?
В программировании термины:
Например, допустим вы сортируете массив int arr[]
- операция достаточно затратная в вычислительном смысле.
Традиционно принято выбирать подход eager, вызываем сортировку массива: Arrays.sort(arr)
, далее пользуемся результатом.
В случае lazy - массив заранее не сортируем, а сортируем только в момент когда нам понадобится arr[i]
- некий элемент сортированного массива - и только тогда вызываем сортировку - чувствуете разницу?
В Stream API почти все операции lazy, промежуточные вычисления производятся только при вызове терминальных операций типа reduce()/count()/collect()
и т.д.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Только начала разбираться со SpringПытаюсь добавить данные в БД и отобразить их списком на страничке
Передо мной предстала следующая задача: написать некоторый софт на Java, с применением GUI на JavaFXодной из функций будущей программы должна быть...