Найти в Дзене
Как создать бесконечный цикл в Java
Часто, люди, начинающие работать с stream в Java, не до конца понимают как именно они работают и что значат терминальные операции. К примеру, мы хотим создать стрим и вывести первые 100 элементов. Это можно сделать следующими способами: Создаем стрим Stream infiniteStream = Stream.iterate(0, i -> i + 1); infiniteStream.limit(100).forEach(System.out::println); Все отлично, напечатаются числа от 0 до 99. Что будет, если мы удалим limit? Как раз таки мы и получим бесконечный цикл через stream. Это работает, хотя можно подумать, что у нас есть терминальная операция и якобы пока она не сработает стрим не запустится...
1 год назад
Разница между fail-fast и fail-safe Iterator
fail-fast Iterator Итераторы в Java используются для итерации по объектам Collection. Fail-Fast итераторы бросают ConcurrentModificationException исключение, когда кто-то пытается модификация коллекции. Под этим понимаем добавление, удаление или обновление любого элемента из коллекции, когда поток выполняет итерацию по этой коллекции. Iterator в классах ArrayList, HashMap - это примеры fail-fast Iterator. fail-safe Iterator Fail-safe итераторы не генерируют никаких исключений, если коллекцию изменили во время итерации по ней...
1 год назад