Ограничение длины потока в Java
Метод limit обрезает поток сверху: после
указанного количества элементов дальнейшие значения
не идут в цепочку. Шаг полезен вместе с бесконечными
источниками и длинными списками, когда нужен только
префикс данных.
Из длинного списка чисел можно взять первые три подходящих значения:
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> nums = List.of(3, 8, 1, 12, 5, 9);
List<Integer> top = nums.stream()
.filter(n -> n > 4)
.limit(3)
.toList();
System.out.println(top);
}
}
Ограничение можно ставить и до отбора, если важен порядок исходной коллекции:
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> words = List.of("go", "tool", "io", "kit");
List<String> shortList = words.stream()
.limit(2)
.map(String::toUpperCase)
.toList();
System.out.println(shortList);
}
}
Дан код:
var nums = List.of(5, 12, 3, 18, 7, 22);
Оставьте числа больше шести, возьмите первые два и выведите список.
Дан код:
var strings = List.of("a", "bb", "ccc", "dddd");
Возьмите первые три строки, отберите длиннее одного символа и выведите результат.