バックエンド

【Java】Stream APIでlimit, skipを使ってよう!

stream-api-limit-skip
野田竣介

今回はこのような質問をいただきました。

Stream APIのlimitの使い方教えて!

limitと同じようなメソッドとしてskipが存在します。

そこで今回はlimitに加えてskipについても解説していきます!

limit, skipって何?

limit

ループさせる要素をn個までに制限をする

skip

ループさせる要素を先頭からn個無視する

どちらも数値を渡してあげるだけなので非常に簡単に使えます。

表示の個数を制限する場合によくlimitを使っていました!

使い方

まずはlimitもskipも使わないでループさせてみます。

1〜10を順番に表示するだけのサンプルです。

こちらのサンプルにlimitとskipを追加してみます。

List<String> list = Arrays.asList("1", "2", "3", "4", "5", "6", "7", "8", "9", "10");
        list.stream()
                .forEach(System.out::println);
 1
 2
 3
 4
 5
 6
 7
 8
 9
 10

limitを追加してみよう!

3個までに制限をするようにしてみました。

この場合は3まで表示されます。

List<String> list = Arrays.asList("1", "2", "3", "4", "5", "6", "7", "8", "9", "10");
        list.stream()
                .limit(3)
                .forEach(System.out::println);
 1
 2
 3

skipを追加してみよう!

先頭から2個を無視するようにしてみました。

この場合は3から表示されます。

List<String> list = Arrays.asList("1", "2", "3", "4", "5", "6", "7", "8", "9", "10");
        list.stream()
                .skip(2)
                .forEach(System.out::println);
 3
 4
 5
 6
 7
 8
 9
 10

limitとskipを追加してみよう!

最後にlimitとskipを同時に使ってみたいと思います。

先頭から2個を無視して、3個までに制限します。

この場合は3から5まで表示されます。

List<String> list = Arrays.asList("1", "2", "3", "4", "5", "6", "7", "8", "9", "10");
        list.stream()
                .skip(2)
                .limit(3)
                .forEach(System.out::println);
 3
 4
 5

まとめ

以下のように無視、制限したいタイミングでlimit, skip挿入するだけで簡単に使えます。

List<String> list = Arrays.asList("1", "2", "3", "4", "5", "6", "7", "8", "9", "10");
        list.stream()
                .skip(2)
                .limit(3)
                .forEach(System.out::println);

あとがき

今回はStream APIのskip、limitを使ってみました。

使い方は簡単で、制限、無視したい数値を渡してあげるだけです。

名前もわかりやすく、感覚的に使えるので使いやすいですね。

面倒なことをしなくても簡単に設定できるので非常に便利です。

機会があれば使ってみてください!

記事URLをコピーしました