ホームページ  >  記事  >  Java  >  Java でストリーム操作に Stream の制限およびスキップ機能を使用する方法

Java でストリーム操作に Stream の制限およびスキップ機能を使用する方法

PHPz
PHPzオリジナル
2023-06-26 15:55:242967ブラウズ

ストリーム API は Java 8 で導入され、コレクションの操作を大幅に簡素化できます。 Stream クラスは、フィルタリング、マッピング、マージなど、ストリームを操作するための多くの機能メソッドを提供します。このうち、limit と Skip は、ストリーム操作の要素数を制限するために使用される 2 つの関数です。

1. Limit 関数

limit 関数は、ストリーム内の要素の数を制限するために使用され、制限の数を示す long 型パラメーター n を受け入れます。 limit 関数を呼び出した後、元のストリームの最初の n 要素のみを含む新しいストリームが返されます。例:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.stream().limit(3).forEach(System.out::print);

上記のコードの出力結果は: 1 2 3 です。この例では、stream メソッドを通じて List コレクションを Stream に変換し、次に、limit メソッドを使用してストリーム内の要素を制限し、最後に forEach メソッドを通じて結果を出力します。

2. スキップ関数

スキップ関数はストリーム内の要素をスキップするために使用され、スキップする数を示すlong型パラメータnを受け入れます。スキップ関数を呼び出した後、元のストリームの最初の n 要素をスキップする新しいストリームが返されます。例:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.stream().skip(2).forEach(System.out::print);

上記のコードの出力結果は: 3 4 5 です。この例では、stream メソッドを通じて List コレクションを Stream に変換し、次に Skip メソッドを使用して最初の 2 つの要素をスキップし、最後に forEach メソッドを通じて結果を出力します。

3.limit関数とskip関数を使ってページングを実装する

limit関数とskip関数を併用すると簡単にページング関数を実装できます。 N 個の要素を含むリストがあり、各ページに M 個の要素を表示するページング関数を実装したいとします。次の方法で実装できます:

public class PaginationDemo {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        for (int i = 1; i <= 10; i++) {
            list.add(i);
        }
        int pageSize = 3;
        int pageNum = 1;
        int start = (pageNum - 1) * pageSize;
        int end = pageNum * pageSize;
        List<Integer> result = list.stream().skip(start).limit(end - start).collect(Collectors.toList());
        System.out.println(result);
    }
}

上記のコードでは、まず 10 個の要素を含むリストを作成します。次に、各ページに表示される数値 pageSize とページ番号 pageNum を定義し、スキップする必要がある要素の数 start とフィルターする必要がある要素の数 end-start を計算します。最後に、limit 関数とskip 関数を使用して、指定されたページ番号に必要な要素をリストからフィルターで除外し、collect メソッドを通じて結果をリストに収集します。

上記は、制限関数とスキップ関数の応用であり、ストリーム内の要素を簡単に制限およびスキップし、ストリーム操作のページング機能を実現するのに役立ちます。

以上がJava でストリーム操作に Stream の制限およびスキップ機能を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。