タグ

2014年7月10日のブックマーク (12件)

  • 問い: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文使いたい時 - ブログなんだよもん
  • Java関数型インターフェースメモ(Hishidama's Java8 Functional Interface Memo)

    概要 @FunctionalInterface 標準的な関数 Supplier(get:()->T) [/2014-04-13] Consumer(accept:(T)->void) [/2014-04-13] Predicate(test:(T)->boolean) [/2018-10-01] Function(apply:(T)->R) [/2014-04-13] UnaryOperator(apply:(T)->T) [/2014-04-13] BinaryOperator(apply:(T,T)->T) [/2014-04-13] 関数型インターフェースは、ラムダ式やメソッド参照の代入先になれるインターフェースのこと。 関数型インターフェースの条件は、大雑把に言って、定義されている抽象メソッドが1つだけあるインターフェース。 staticメソッドやデフォルトメソッドは含まれていても

  • Java 8 の CompletableFuture が Scala の Future 並に使えそうな件

    一ヶ月ほどまえに Java 8 がリリースされました。ラムダも入ったことだし、お試しがてらゴールデンウィーク中に asterisque* の Scala コードの一部を Java で書き換える作業などを行っております。 ただまぁ asterisque* は非同期 RPC フレームワークですので、ラムダだけでなく Scala の Promise, Future もあちこちで使っています。うーんこいつらの互換性どうしようかなーと悩んでいたところ Java 8 に CompletableFuture というクラスが追加されいるのに気づきました。ざっと API リファレンスを読む限り以下のような特徴があります。 Scala の Future と同様に非同期処理間で成功 (計算結果) または失敗 (例外) を渡すことが出来る。 複数の処理スレッドで共有することも想定していて、早い者勝ちで結果を出すよ

    Java 8 の CompletableFuture が Scala の Future 並に使えそうな件
  • Java SE 7徹底理解 第3回 Fork/Join FrameworkからProject Lambdaへ

    先月に引き続き、今月もFork/Join Frameworkについて紹介していきます。 ハードウエアのトレンドはマルチコア、そしてメニーコアに向かっており、それにあわせてソフトウエアも変化していかなくてはいけません。そのためには、細分化したタスクを複数のコアに対してまんべんなく処理させることが必要になってきます。 そこで、タスクを細分化する手法として前回紹介したのが、分割統治法です。 分割統治法は問題領域を分割し、再帰して処理する手法です。再帰ごとに分割を行い、領域が十分に小さくなったら直接処理を行います。このようにすることで、タスクを細分化することができます。 分割統治法はソートや検索、行列操作などに応用することができます。これ以外にも数値積分や、チェスやオセロなどのゲームの枝狩りにも応用することができます。 そして、分割統治法を並行処理するためのフレームワークとしてJava SE 7に

    Java SE 7徹底理解 第3回 Fork/Join FrameworkからProject Lambdaへ
  • Javaの例外処理で知らないと損する7つのテクニック

    Javaの例外処理で知らないと損する7つのテクニック:【改訂版】Eclipseではじめるプログラミング(24)(1/3 ページ) これからプログラミングを学習したい方、Javaは難しそうでとっつきづらいという方のためのJavaプログラミング超入門連載です。最新のEclipseとJava 6を使い大幅に情報量を増やした、連載「Eclipseではじめるプログラミング」の改訂版となります(この回と前回のみ、別連載「EclipseでJavaに強くなる」の改訂版です。今回は第4回Javaの例外のテクニックを知る」の改訂版です) 前回の「プログラマの宿命! 例外とエラー処理を理解する」では、Javaにおける例外の用途と基的なコードの書き方、例外が発生するさまざまなケースについて理解しました。 今回は、独自に例外を定義する方法や、ちょっとした例外のテクニックを紹介します。 【1】Eclipseで独自の

    Javaの例外処理で知らないと損する7つのテクニック
  • 初心者のためのJavaラムダ式入門とJDKのインストール、IDEの環境構築

    2014年3月18日に一般公開予定のJava SE 8へのバージョンアップでは、新たな表記法として「ラムダ式」が追加されます。このラムダ式を使うことによって効果を発揮する数々のAPIも追加されることになり、今回のバージョンアップはJavaを使う人にとって無視できないバージョンアップとなります。 しかしラムダ式は今までJavaプログラミングをやってきた人でも前提知識なしにソースだけを見て理解するのは難しい内容となっています。この連載では、今までJavaの経験はあっても「ラムダ式は、まだ知らない」という人を対象にラムダ式について解説していきます。 JDK 8は2013年9月10日に開発者向けプレビュー版が公開され、2014年2月18日現在、Early Access版がリリースされています。 コラム「ややこしいJavaのバージョン番号」 Javaのバージョン番号について、ところどころで1.8のよ

    初心者のためのJavaラムダ式入門とJDKのインストール、IDEの環境構築
  • Java8で追加された型・メソッド一覧 - Qiita

    Javadoc から抽出してみた。 2015/04/03 追記 URL のパスが変わったのでいまさら修正。 2015/01/11 追記 日語化が進んでたので抽出しなおしました。 2014/05/24 追記 22日に公開された日語版 Javadoc から抽出しなおしました。 抽出がうまくいかなくていくつか項目が増減してるけど、しんどいので今のところ修正するつもりはないです。 抽出してわかったけど、日語化されているのは Java8 で新規に追加された API だけで、まだ結構英語のままの API が多いようです。 (既存の API英語の分は Java7 を見れば補完できるので、そんなに大きな問題ではない)

    Java8で追加された型・メソッド一覧 - Qiita
  • Javascriptの基本:クロージャー(closure)とその読み方 - tetsuya_odakaの日記

    よく、下のような形式の関数を『クロージャー(closure)』と呼ぶ。 // クロージャー var test1 = function(){ --- (1) var _i = 1; return function(){ alert(_i); _i++; }; }; 形式的には、先のログ『Javascriptの基:いろいろな関数』で照会した、「関数を戻り値にする関数」と同じ。 これを以下のようにして実行すると、'1'、'2’…という値がアラートに上がってくる。 var func = test1(); func(); // '1'がアラートされる。 func(); // '2'がアラートされる。 func(); // '3'がアラートされる。 perlruby,phpなどでもクロージャー(と呼ばれるもの)を作ることができる(Java7へのクロージャーの導入は見送られた)。 クロージャーと聞い

    Javascriptの基本:クロージャー(closure)とその読み方 - tetsuya_odakaの日記
  • bash で前ゼロ埋めする - ablog

    $ printf "%04d-%02d-%02d" 2008 8 4 2008-08-04 bash でも printf 使えるのか。 [参考] bashクックブック 作者: Carl Albing,JP Vossen,Cameron Newham,株式会社クイープ出版社/メーカー: オライリージャパン発売日: 2008/09/26メディア: 大型購入: 8人 クリック: 268回この商品を含むブログ (31件) を見るP.546 A.12 printf

    bash で前ゼロ埋めする - ablog
  • フィルタを使用した文字列操作 1 | UNIX & Linux コマンド・シェルスクリプト リファレンス

    → パイプでフィルタに加工したいデータを受け渡し、目的とする文字列を抽出するフィルタリング処理を行う。 パイプを使用して不必要な文字列を消去する、または適切な位置に文字列を付加する、といったフィルタを挟み込むことで目的とするデータを抽出する。 また、フィルタをパイプで複数連結することで、より複雑なフィルタリング処理を実現することができる。 sed コマンドを使用したフィルタリング 文字列 A を文字列 B に置換する sed コマンドはさまざまな機能を持ったコマンドだが、主には文字列の置換処理に利用されるコマンドである。置換処理を行う場合には、置換対象と置換後の文字列を指定してコマンドを実行する。置換対象の指定には一部の正規表現を使用することも可能である (一部の正規表現は使用できない。また、sed のバージョン等により使用できる正規表現も異なる)。 各行の最初に一致した文字列のみ置換 →

    フィルタを使用した文字列操作 1 | UNIX & Linux コマンド・シェルスクリプト リファレンス
    hatehate331000
    hatehate331000 2014/07/10
    SSS
  • あなたのJavaコードをスッキリさせる、地味に便利な新API 10選(前編) - Taste of Tech Topics

    こんにちは! アキバです。 ...T3ブログは初登場かもしれません。ハジメマシテ。 以後お見知りおきを。 いよいよ、2014年3月、Java8が正式公開されますね。 なんと言っても、Java8の注目機能はラムダ式ですので、ラムダ式や型推論に関する記事は多いです。 世の中で「Java8」と検索すると、皆さんいろいろと記事を書かれているので、おおよその事はこれで分かっちゃうような気がします。 が、 実は地味に便利なAPIが追加されていたりすることを最近知りました。 これはあまり触れられていないぞ、と。 というわけで、このエントリでは、あまり日語で情報の無い、しかし地味に便利なAPIに実際に触れてみます。 大事なところなので2回強調して書いてみました。 今回は、前編として4つ紹介します。 ※APIの紹介と言いつつ、コードにはラムダ式を使ったコードが普通に出てるので、ご了承ください。 (むしろ、

    あなたのJavaコードをスッキリさせる、地味に便利な新API 10選(前編) - Taste of Tech Topics
  • http://blog.quall.net/program/227/