表記の件について、JavaのListから作るStreamは操作中に変更をするとその後の挙動についてなんら結果を保証しないので、ListからStreamを作った場合は、変更をしないか、あるいは不可変なListに変換してから作るのが良いです。 と、書いておいてからなのですが、こんなツイート見かけました。 これは思わぬ結果 ステートフルな中間操作のsorted()かますと 最終的にListは空になるけどforEachで全て出力される。 なんでだろう? これで今日も眠れないw pic.twitter.com/864kLHyK8K— Yucchi (@Yucchi_jp) May 8, 2015 peekでListの要素を削除するというやってはいけないパターンです。 @Test public void intList() { List<Integer> list = IntStream.range(
さて、C#で関数型っぽいことをやって遊んでみたわけですが、恥ずかしくなって猫の写真に置き換えました。 C#で実際に使うのは、LINQです。 ということで、LINQの使い方をひととおり見てみます。 基本 LINQの中核となるのはIEnumerable<T>インタフェースです。これがJava8のStreamに相当します。 さて、IEnumerable<T>インタフェースにはForEach拡張メソッドが用意されていません。これはFAQで、意図的に入れていないということです。 LINQとはズレますが、List<T>クラスにはForEachメソッドがありますから、こっちを使いましょう。ええ、クラスです。インターフェースではありません。 var names = new[] {"hoge hoge", "foo bar", "naoki", "kishida"}.ToList(); names.ForE
久しぶりにJavaのメモ。 Java 8のラムダ式 (Lambda Expression)とStreamについての情報をメモメモ。 きしださんの記事がすごくわかりやすいです。感謝m(_ _)m .NETやってる側からすると、LINQに似ていて、とっつきやすいですね。 Java8のStreamを使いこなす http://d.hatena.ne.jp/nowokay/20130504 Java8のStreamの目的と書きやすさや可読性、並行処理の効果について http://d.hatena.ne.jp/nowokay/20130506 Java8のlambdaとStream http://sumomo.ohwaki.jp/wordpress/?p=163 Java〓 Platform, Standard Edition 8 Early Access with Lambda Support ht
連載目次 前回の「ラムダ式で本領を発揮する関数型インターフェースとStream APIの基礎知識」では、ラムダ式を使うことで本領を発揮する汎用的な関数型インターフェースとStream APIの概要を見てきました。 今回は、前回に引き続きStream APIについて見ていき、主なメソッドとその使い方を学んでいきましょう。 Streamの生成 Stream APIを使うには、Streamのインスタンスを生成しなければいけません。まずは、そのStreamインスタンスを生成する方法を見ていきましょう。 配列やCollectionなどからのStreamの生成 Streamは配列やCollectionなどから作成可能です。まずは配列やCollectionからStreamのインスタンスを生成する主なメソッドを見てみましょう。下記のものが主なメソッドです。 呼び出し元クラス/インターフェース メソッド 概
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く