Есть следующий List<String>
:
List<String> arrList = Arrays.asList("небо", "земля", "облако", "космос", "звезда", "галактика");
Создав поток stream
, отфильтруем элементы (слова) с длиною меньше 6 символов, например, и подсчитаем количество этих элементов.
long count = arrList.stream().filter(w -> w.length() > 6).count();
В каком порядке реально выполняются операции filter()
и count()
? В том же в каком они следуют в данном выражении?
Порядок выполнения операций над стримами не изменяется. Но стоит учитывать, что операции делятся на два типа:
Разница между первым и вторым типами заключается во времени выполнения. Т.е. промежуточные операции ленивы, и они будут вычисляться только лишь после дальнейшего вызова конечной операции.
Более подробнее здесь.
Порядок потоковых операций не соответствует тому порядку в котором они (операции) вызываются в потоках ввода-вывода. Сначала в методе count()
запрашивается первый элемент, затем в методе filter()
начинается опрашивание элементов до тех пор, пока не будет найден элемент длиной меньше 6 букв.
Источник: Кей С. Хорстманн - Java SE 8. Вводный курс
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Сделал собственную разметку и добавил виджет TimePicker и кнопку,которая будет сбрасывать время до текущего время системы