タグ

javaとstreamに関するchess-newsのブックマーク (7)

  • コレクションを強化したStream - Qiita

    Arrays.asList("a", "b", "c").stream().forEach(s -> System.out.println(s)); Listにstream()というメソッドが追加されました。これはリストに対するStreamを返すメソッドで、Listにdefaultで実装されています。 forEachはStreamの全要素に対して引数の関数を適用しています。引数の無名関数はprintlnを呼ぶだけのラッパーで、実行するとコンソールにa b cと表示されます。 さて、これだけだと何も便利になった感じがしないですね。むしろ拡張for文の方がわかりやすいです。 java.util.stream.Stream StreamインターフェイスにはforEach以外にも色々なメソッドが実装されています。ここでは例としてmapToIntとfilterを使ってみます。

    コレクションを強化したStream - Qiita
  • ラムダ式・Stream APIの理解のポイントは「型」 - 行きあたりばったりエンジニアの日記

    はじめに Java SE 8がリリースされて、そろそろ1年が経とうとしています。早いものです。 それはすなわち、Java SE 7のサポート切れが間近に迫っているということでもあります。 そこで今回は、改めてJava SE 8の理解のポイントを解説しようと思います。 ラムダ式・Stream APIの2点が、Java SE 8の目玉となる新機能です。 こんなコードが出てきます。 List<Emp> source = Arrays.asList( new Emp(101, "Nishida", Dept.ADMIN, 500000), new Emp(102, "Nohira", Dept.SALES, 285000), // 以下省略 ); // ラムダ式&Stream API! // EmpのListから、Deptが「SALES」の要素のみ抽出し、名前のみのListに集約する List<S

    ラムダ式・Stream APIの理解のポイントは「型」 - 行きあたりばったりエンジニアの日記
  • Java8でJava8っぽいコードを書く - Qiita

    概要(お前は何を言っているんだ) コードレビューしていると、Java8のfeature(Stream APIとかOptionalとか)を使ってるんだけど、Java7以前と大差ない書き方をされているコードをよく見かける。 もっと皆にJava8っぽいコードを書いて欲しい。そうじゃないともったいない。 (*"Java8っぽい"の基準は割りと(かなり?)私見が入っている) 言葉を尽くしても伝わりづらいので、例を作ろう。 ← これ ついでに、「無理してJava8のfeature使うことで、逆に悪くなってしまっている例」も作ろう。 対象読者 Java8でコード書いてるけど、Java7以前の書き方が染み付いちゃっていてなかなか抜け出せない人 「forやnullチェックは絶対使うべきでない」という思いが強すぎて、何でもかんでもStream APIやOptional使ってる人 Notice この記事で書いて

    Java8でJava8っぽいコードを書く - Qiita
  • Stream (Java Platform SE 8)

    型パラメータ: T - ストリーム要素の型 すべてのスーパー・インタフェース: AutoCloseable, BaseStream<T,Stream<T>> public interface Stream<T> extends BaseStream<T,Stream<T>> 順次および並列の集約操作をサポートする要素のシーケンスです。次の例は、StreamとIntStreamを使用する集計操作を示したものです。 int sum = widgets.stream() .filter(w -> w.getColor() == RED) .mapToInt(w -> w.getWeight()) .sum(); この例では、widgetsはCollection<Widget>です。Collection.stream()経由でWidgetオブジェクトのストリームが作成され、その結果がフィルタリング

  • 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
  • Java8 Lambdaまとめ - Qiita

    引数と処理を->でつなぐだけなので、簡単にLambdaを書くことが出来る。 具体的に色々な例を下記に記載していきます。 基java8では、ほとんどのケースでfor文を使用しなくてもよいので、まずはそれを書き直す基的なやり方です。 ListでLambda List<String> stringList = new ArrayList<String>(); stringList.add("japan"); stringList.add("usa"); stringList.add("england"); for (String string : stringList) { System.out.println(string); } List<String> stringList = new ArrayList<String>(); stringList.add("japan"); st

    Java8 Lambdaまとめ - Qiita
    chess-news
    chess-news 2019/02/11
    マッチ
  • How to copy HashMap (not shallow copy) in Java

    chess-news
    chess-news 2019/02/10
    java stream copy array
  • 1