今日のjavaおっかけ(20150512):Stream API 3

ようやく戻ってきたけど

目次とぶっつぶつテーマ

http://snoopopo.hatenablog.com/entry/2015/04/14/102732

今日のテーマ:Stream API 3

java.lang.Iterable インタフェースの forEach メソッド

default void forEach(Consumer<? super T> action) {
    Objects.requireNonNull(action);
    for (T t : this) {
        action.accept(t);
    }
}

これの意味は前回まででなんとなくわかったので、ようやく次へ進む。

今回は深追いせずにStreamに用意されている便利メソッドとして よく記事にあがっているメソッドの使い方を少しだけみてく。

map と filter

     List<String> names = Arrays.asList("hoge hoge", "poyo poyo", "popopopopo.");
        names.stream()
            .filter(s -> s.length() == 9)
            .map(s -> "[" + s + "]")
            .forEach(name -> System.out.println(name));

filterで条件を指定して(この場合は9文字な文字列)条件に合うstreamが帰ってきて、

mapで括弧をつけるという処理がされたstreamがまた帰ってきて、

最後にそのstreamをまわしているかんじだと思う。

streamAPIというかラムダの感覚は今までと違う、みたいな話があるけど、全然そういう感覚すらもないなー わかってないのだと思う。

ちょっとやりたくなくなってきたので、明日は違う内容をやるか。