Corredor

ウェブ、プログラミングの勉強メモ。

Java8 復習:Filter や Map を使ってみる

わかりすぎるJava8の教科書 (SCC Books 376)

わかりすぎるJava8の教科書 (SCC Books 376)

Java8 復習シリーズ。Stream API にもう少し踏み込んで、コレクションに対するデータ処理をしてみる。

import java.util.ArrayList;
import java.util.List;

public class Java8Filter {
  public static void main(String[] args) {
    // 大統領名リスト
    List<String> presidentsList = new ArrayList<String>(){{
      add("Richard Nixon");
      add("Gerald Ford");
      add("Jimmy Carter");
      add("Ronald Reagan");
      add("George Bush");
      add("Bill Clinton");
      add("George Bush");
      add("Barack Obama");
    }};
    
    // "G" から始まる人物を出力する
    presidentsList.stream()
                  .filter(president -> president.startsWith("G"))
                  .forEach(president -> System.out.println(president));
    
    // "G" から始まる人物の文字列の長さを合計してみる
    int count = presidentsList.stream()
                              .filter(president -> president.startsWith("G"))  // Filter で絞った Stream を返す
                              .mapToInt(president -> president.length())       // その Stream から Int の Stream を返す
                              .sum();                                          // Int の Stream を操作して結果を返す
    System.out.println(count);
  }  
}

Map 関連は Java の仕様を押さえて覚え直さないと。

ひとまずこんなことができるようになった、というところまで試してみて終わり。

Javaによる関数型プログラミング ―Java 8ラムダ式とStream

Javaによる関数型プログラミング ―Java 8ラムダ式とStream

  • 作者: Venkat Subramaniam,株式会社プログラミングシステム社
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2014/10/24
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (3件) を見る