久しぶりにJavaのメモ。
Java 8のラムダ式 (Lambda Expression)とStreamについての情報をメモメモ。
きしださんの記事がすごくわかりやすいです。感謝m(_ _)m
.NETやってる側からすると、LINQに似ていて、とっつきやすいですね。
- Java8のStreamを使いこなす
- Java8のStreamの目的と書きやすさや可読性、並行処理の効果について
- Java8のlambdaとStream
- Java〓 Platform, Standard Edition 8 Early Access with Lambda Support
- Project Lambda
Javaでも、シーケンスの処理を以下のように記述できるようになる模様。
以下、きしださんのところのサンプルまるパクリですが m(_ _)m
List<String> names = Arrays.asList("hoge", "hehehe", "fuga"); names.stream() .filter(s -> s.length() > 5) .map(s -> "[" + s + "]") .forEach(System.out::println);
C#では、以下のようになります。見た目はあんまり変わりません。
(若干最後のForEachは無理やり感が漂ってますがw)
var names = new []{ "hoge", "hehehe", "fuga" }; names.Where(s => s.Length > 5) .Select(s => "[" + s + "]") .ToList() .ForEach(Console.WriteLine);
================================
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。
- いろいろ備忘録日記サンプルソース置き場