タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

Javaとjava8に関するryoasaiのブックマーク (5)

  • 問い:Java 8のStream APIは業務でどんな時に使うの? 答え:あなたがfor文使いたい時 - ブログなんだよもん

    ※ サンプルがJDK7までとJDK8までで意味が変わっていてわかりにくいという指摘があったので、少し直しました。 ※ boxedを使う書き方だと無駄なAutoboxingが走るとの指摘を頂きましたのでmapToObjを利用するように変えました。 Java8の目玉機能の一つにStream APIがあります。 目玉機能だけあって、先日のJava Day Tokyo 2014を含めて色んな所で発表やブログの記事が公開されているので、どんなものかを知ってる人は多いと思います。 Stream APIといえば「".parallel()"と書くだけで並列化してスピードアップ出来る!」という魅惑的なキーワードで紹介されることが多いので、並列化のための仕様だと勘違いされそうですが、そうではありません。 ※ もちろんそういった記事の中をちゃんと読めばそう単純な話じゃないことも分かります。 むしろ、並列化に関し

    問い:Java 8のStream APIは業務でどんな時に使うの? 答え:あなたがfor文使いたい時 - ブログなんだよもん
    ryoasai
    ryoasai 2014/05/26
    新しい文法やAPIを知っているだけでは有効に活用できないので、こういった考察は大切ですね。
  • Java8でListとかMapに追加されたメソッドをいくつか試してみる - Qiita

    1.8.0 Collection removeIf(Predicate<? super E> filter) package java8; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> list = Arrays.asList("hoge", "fuga", "piyo"); System.out.println("before : " + list); list.removeIf(str -> str.contains("g")); System.out.println("after : " + list); } } before : [hoge, fuga, piyo] Exception

    Java8でListとかMapに追加されたメソッドをいくつか試してみる - Qiita
    ryoasai
    ryoasai 2014/05/18
    ストリームだけでなく、CollectionやMapといった従来のインターフェースもいろいろ便利になっている
  • Java 8のOptionalをGroovyから超簡潔に使用する - uehaj's blog

    結論 Java8のOptionalは超すっきり扱えるよ、そう、Groovyならね。 Optionalって何? Java 8で導入される新規クラスの一つ、java.util.Optionalは、メソッドの実行結果で成功する場合と失敗する場合があるときに、その返り値で成功と失敗を表現するためのものです。 Opitonalは単一要素を保持するコンテナ型。成功した場合は返り値をコンテナで保持させたものを返す。(成功時の返り値をラッピングする) 「失敗」は固定のシングルトン(Optional.empty())として扱う まあ、それだけの話といえばそれだけなのですが、効果は、 失敗のある可能性のあるメソッドと無いメソッドをコメントではなくプログラムの一部として明示し、両者の違いをコーディング上も区別する 失敗のある可能性のあるメソッドと無い混在・混同することのないようにコンパイル時チェックをできるよう

    Java 8のOptionalをGroovyから超簡潔に使用する - uehaj's blog
  • Java8でのプログラムの構造を変えるOptional、ただしモナドではない - きしだのHatena

    ※ 5/29 3:23 追記:なんかモナドになったかも。最下部参照 さて、Java8での拡張をいろいろ見てきたわけですが、ではアプリケーションプログラムでFunctionを受け取るメソッドをがんがん定義するかというとそういうことはあまりなく、フレームワーク的な部分で数個定義する感じになると思います。もちろん数個でも効果はでかいのですが。 また、おそらくStreamを受け取ったり返したりするメソッドを定義することは、めったにないのではないかと思います。 Mapでの拡張も、メソッド内部での処理記述がかわる話で、メソッドの引数や戻り値はMapのまま変わりありません。 Javaでのプログラムの構造というのは、メソッドの引数や戻り値の型がなんであるかで決まると言うことができます。その意味では、lambdaやStreamというのは処理の記述は変わるけどプログラムの構造は変わらないとなります。 けれども

    Java8でのプログラムの構造を変えるOptional、ただしモナドではない - きしだのHatena
  • 大刷新リリース Java 8の新機能

    2014年3月18日(米国時間)、ラムダを筆頭に数多くの新機能が含まれるJava 8がいよいよリリースされる。 ここ数年、JavaOracleのSun買収による混乱、当初Java 7で実装されるはずだった多くの機能の先送り、さらにはJava 8のリリースの遅延など様々な要因によって強い停滞感があり、それが関数型言語の機能を取り入れたScalaなどJavaの代替となるJVM言語の台頭にも繋がった。 そうしたJavaプログラマの溜まりに溜まったモヤモヤを払拭するアップデートとして期待されているのが今回のJava 8だ。前述の通りラムダの導入による新たな構文からStream APIやTime APIといったライブラリの追加まで、非常に多くの新機能を含んでいる。 稿ではそのJava 8の主要な新機能についてサンプルコードを交えて紹介していく。Java 8の新機能を押さえるための参考になれば幸い

    大刷新リリース Java 8の新機能
  • 1