stream API …
目次とぶっつぶつテーマ
http://snoopopo.hatenablog.com/entry/2015/04/14/102732
今日のテーマ:Stream API 1
・関数型インタフェースの実装の記述の簡素化
・ラムダ式を使ったJava8での新機能(streamAPIとか?)
前回でラムダの基本的な書き方を知ったので、ラムダの文法が出てくるstreamAPIをみてくことにする.
Stream API の基本的な使い方
基本と紹介されていた書き方が以下のようなもの.
//基本の使い方 List<String> names = Arrays.asList("hoge hoge", "poyo poyo", "popopopopo."); names.forEach(name -> System.out.println(name));
意味がまるでわからないのでもうちょっと見てく.
java8では、java.util.streamというパッケージが追加された*1
↑の例は以下と同じ.
//基本の使い方 List<String> names = Arrays.asList("hoge hoge", "poyo poyo", "popopopopo."); Stream<String> st = names.stream(); st.forEach(name -> System.out.println(name));
java.util.stream.StreamというインタフェースのメソッドforEachを使用してる.
ちなみに java.util.List のforEach は、親インタフェースであるjava.lang.Iterable からの継承で、 Iterable インタフェースに forEachメソッドがjava8で増えてるみたいだ.
default void forEach(Consumer<? super T> action)
これと、Stream インタフェースのforEachは同等のもののようだ.
まずこのdefaultってなんだろ…おそらくデフォルトメソッドというやつではないかと思う.
時間がきてしまったので、明日に続く. デフォルトメソッドをやってからstreamAPIに戻ってくる.