Интерфейс ExecutorService отделяет отправку задачи на выполнение от непосредственно самого выполнения. По сравнению с использованием потоков и интерфейсом Runnable удобно то, что с помощью
Сначала у вас может возникнуть мысль: «Ну зачем они опять меняют мой язык?» Но потом, после начала работы с новыми функциями, вы обнаружите, что благодаря им пишете более краткий и чистый код вдвое быстрее, чем раньше, — и осознаете, что уже не хотите возвращаться к «старому Java».
Преимущество секционирования в том, что сохраняются оба списка элементов потока данных, применение к которым секционирующей функции дает true или false. В предыдущем примере получить список невегетарианских блюд можно путем извлечения значений для ключа false ассоциативного массива partitionedMenu, вместо того чтобы задействовать две отдельные операции фильтрации: одну с вышеупомянутым предикатом, а вторую — с его отрицанием.