タグ

streamに関するNagataniのブックマーク (7)

  • ラムダ式とStream APIで学ぶモダンJava ― 関数型を取り入れて変化するJava言語の現在 - エンジニアHub|Webエンジニアのキャリアを考える!

    ラムダ式とStream APIで学ぶモダンJava ― 関数型を取り入れて変化するJava言語の現在 20年以上の歴史を持つJava言語ですが、近年は関数型を取り入れるなど大きく変化し、リリースサイクルも格段に短くなってますます進化しています。モダンなJavaプログラミングで必要となるラムダ式とStream APIについて、谷心(cero_t)さんによる詳細な解説です。 1996年にJava 1.0が登場して、もう20年以上がたちました。この間、Javaにはさまざまな言語機能やAPIが追加され、変化し続けています。 これだけ長い歴史を持つプログラミング言語ですから、利用者が多かったり、フレームワークやライブラリが充実していたりする一方で、書籍やWebに掲載されている情報が少し古かったり、研修で学ぶJavaが最新の動向を踏まえていなかったりするなど、長い歴史を持つが故の問題もあります。 特

    ラムダ式とStream APIで学ぶモダンJava ― 関数型を取り入れて変化するJava言語の現在 - エンジニアHub|Webエンジニアのキャリアを考える!
  • Java8 逆引き Stream API - Qiita

    はじめに Java8の新機能、Stream APIを使い始めてコーディングが格段に楽になりました。 備忘録的にサンプルコードを書き出してみました。少しずつ追加していく予定です。 Javaは使ったことあるけどラムダ式やStream APIはよく知らないという方は、参考にしてみてください。 バリバリ使っている方は、こんな使い方もあるよ!と教えていただけると嬉しいです。 ちなみにオライリー社のJavaによる関数型プログラミング ―Java 8ラムダ式とStreamがとても参考になりました。 【前提条件】Stream APIの説明に使用するオブジェクト public class Person { private String name; private int age; private List<Person> children; public Person(String name){/*...*

    Java8 逆引き Stream API - Qiita
  • ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2

    Spring Securityを触ったことがあるけど、裏で何が起こっているか分からず、モヤモヤしてる方にお勧めの資料です。 Spring Securityのキーとなる「Security Filter Chain」と「Security Context」についてじっくり説明しています。 資料を読んでいただければ、Spring Securityのデバッグやカスタマイズがし易くなるはずです。 ※読者の想定としてSpring Securityに触ったことがある方を想定しています。全くの初心者の方は、簡単な認証・認可を事前に動かしてみることをお勧めします。

    ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
  • ストリーム表現とその変換 - ✘╹◡╹✘

    データをストリームとして表現する方法と、ストリームを変換する方法を紹介する。 ストリームはメッセージが流れる川である Pub/Subメッセージングモデルでメッセージを流すためのオブジェクトのことをストリームと呼ぶことにする。ストリームにはメッセージをPublishでき、またメッセージを受け取ったときの処理をSubscribeできる。例えばキーボードからの入力をPublishして、内容をコンソールに出力するような処理をSubscribeできる。 kamo.jsでストリームを表現する ストリームについて説明するために、kamo.jsというストリームを表現するためのライブラリをつくった。kamo.jsは、ストリームを作成するためのkamo.Streamというコンストラクタ関数を提供する。このコンストラクタ関数から作成されたオブジェクトは、publishとsubscribeというメソッド(※プロパ

    ストリーム表現とその変換 - ✘╹◡╹✘
  • iteratorや拡張forよりStreamのforEachが速い? - きしだのHatena

    ちょっと気になったので、簡単にベンチマークしてみました。 最初は、ラムダ呼び出しが入る分forEachは遅いんじゃないかと思っていたら、倍の速さに。 もちろん、いろんな条件で変わるんだろうけど、ここまで差が出ることがあるのは驚き。 あと、Collectors.summingIntのような基型に対するCollectorを使うよりは、intStreamに変換してからsumなど専用メソッドを使うほうが圧倒的に速いことも確認できた。 とりあえず、0から10万件のListを用意。 array = IntStream.range(0, 100_000).boxed().collect(Collectors.toList()); それからベンチマーク用のメソッドを用意。 public static void bench(String name, Supplier<Integer> proc){ ben

    iteratorや拡張forよりStreamのforEachが速い? - きしだのHatena
  • 社内Java8勉強会 ラムダ式とストリームAPI

    5. 5 / 54 ラムダ式とストリームAPI • ラムダ式とは関数を簡便に表現するための記法。 • ストリームAPIは、ラムダ式を利用したコレク ション操作用のAPI • 関数型プログラミング言語由来。歴史は古い。 • これまでの手続き型やオブジェクト指向的なプ ログラミング手法から、関数型プログラミング に変わります。 • パラダイムシフトのよかん!! 6. 6 / 54 簡単なサンプル • フルーツの一覧の中から • 名前が“りんご”で始まり、 • 値段が100円以上のものを、 • 値段順で並び替え、 • 名前だけを取り出して、 • リストを作成する 1 List<String> apples = fruits.stream() 2 .filter(f -> f.getName().startsWith("りんご")) 3 .filter(f -> f.getPrice() > 10

    社内Java8勉強会 ラムダ式とストリームAPI
  • Java8のStreamを使いこなす - きしだのHatena

    さて、Java8で関数型っぽいことをやって遊んでみたわけですが、実際はそんな書き方しませんよね。 Java8で実際に使うのは、Streamです。 ということで、Streamの使い方をひととおり見てみます。 ※5/17 仕様変更があったので、修正しました 基 まずは、Iterableインタフェースに用意されたforEachメソッドを見てみましょう。 List<String> names = Arrays.asList("hoge hoge", "foo bar", "naoki", "kishida"); names.forEach(s -> System.out.println(s)); これで次のように表示されます。 hoge hoge foo bar naoki kishida いままでの拡張forだと次のように書いてました List<String> names = Arrays.a

    Java8のStreamを使いこなす - きしだのHatena
  • 1