пропускать и ограничивать операции в Java 8 Stream Api

Spring Boot Java

1. Введение

Java 8 Stream APIсерединаskip()иlimit()метод имеет аналогичный эффект. Оба они являются промежуточными методами обрезки потоков. Сегодня мы обсудим эти два метода.

2. skip()

skip(lang n)это пропуск передnпоэлементные операции с промежуточными потоками. Мы пишем простой метод сделатьskipоперация, которая печатает оставшиеся элементы потока.

  public static void skip(long n) {
        Stream<Integer> integerStream = Stream.of(1, 2, 3, 4, 5, 6);
        integerStream.skip(n).forEach(integer -> System.out.println("integer = " + integer));
    }

После испытаний, когдаn < 0брошенный прямоIllegalArgumentExceptionаномальный. Ведь какие-то элементы приходится пропускать, а это все равно, что играть в шахматы: назад нельзя, можно только вперед. когдаn=0В то время его вернули Чжао в первоначальном виде. Мы вообще не берем на себя инициативу делать такого рода операции, это бессмысленно. когдаn=4, напечатано5и6, можно сделать вывод, что когда значение больше или равно размеру потока, не должно быть ничего, и это должен быть пустой поток для потока. Проверено точноcount=0.

то естьskip(long n)метод перед пропускомn(неотрицательные) элементы возвращают оставшийся поток, возможно, пустой поток.

3. limit()

limit(long maxsize)Мы также делаем то же самое:

    public static void limit(long maxsize) {
        Stream<Integer> integerStream = Stream.of(1, 2, 3, 4, 5, 6);
         integerStream.limit( maxsize).forEach(integer -> System.out.println("integer = " + integer));
    }

когдаn < 0брошенный прямоIllegalArgumentExceptionаномальный. когдаn=0, возвращает пустой поток. когдаn=4, напечатано1,2,3,4.n=8, печатаются все элементы. чувствовать какmysqПагинация аналогична по назначению.

4. Разница

Оба этих метода перехватывают поток. Но у них есть некоторые отличияskipОперация должна постоянно отслеживать состояние элементов в потоке. чтобы определить, нужно ли его выбрасывать. такskipЭто государственная операция.

иlimitЗаботьтесь только о перехвате его параметровmaxsize(Максимальное значение интервала), другим все равно. Как только оно достигнуто, операция прерывается и поток возвращается. такlimitОтносится к операции прерывания.

5. Резюме

Сегодняшний обзор Java Stream APIskip()иlimit()методы обсуждаются. Я не знаю, в каких сценариях вы могли бы использовать их по отдельности, пожалуйста, оставьте сообщение и дайте мне знать.

关注公众号:Felordcn获取更多资讯

Личный блог: https://felord.cn