エンジニアの知恵袋

エンジニアの知恵袋

フリーランスシステムエンジニアをしています。日々感じたことや学んだことをアウトプットしていきます。

Java StreamAPI

Java8から使えるようになったSteramAPIですが、配列やList、Map型の変数を扱う時に大変便利なものですよね。
しかし、書き方に若干クセがあり私もしょっちゅう忘れます。 その都度調べながらという感じなので自分のブログにも残しておきたいと思います。

一個の記事に全ては書ききれないので、今回は各種配列、LIst、Mapを扱う時のSteramAPIの書き方についてまとめておきます。

配列の時のSteramAPI

配列の場合はjava.util.ArraysにstreamAPIが用意されているのでそちらを使用。

// 配列型定義
String[] animalArray = {"Dog","Cat"};
// SteramAPIでCから始まるものに絞る
Arrays.stream(animalArray).filter(a -> a.startsWith("C"))
            .forEach(System.out::println);

■実行結果

Cat

List型の時のSteramAPI

List型の場合はjava.util.ArrayListにstreamAPIが用意されているので、List型で宣言された変数から使用可能。

// List型
List<String> animalList = Arrays.asList("Dog","Cat");
// SteramAPIでCから始まるものに絞る
animalList.stream().filter(a -> a.startsWith("C"))
            .forEach(System.out::println);

Map型の時のSteramAPI

Map型の場合はjava.util.Map自体にはstreamAPIが用意されていないため、entrySetを経由して使用する。

// Map型
Map<Integer,String> animalMap = 
                new HashMap<Integer,String>()
                {{put(1,"Dog");put(2, "Cat");}}; 
// SteramAPIでCから始まるものに絞る
animalMap.entrySet().stream()
            .filter(a -> a.getValue().startsWith("C"))
            .forEach(System.out::println);

StreamAPIの各型に対する記述方法をまとめました

とりあえず今回はStreamAPIを使用するときに各型での書き方をまとめてみました。 多分また忘れると思うのでちょくちょくここで見直そうかと思います。 StreamAPIの中間処理に関してはまた今度の機会に書きます。