Java8でStreamAPIやラムダ式が使えるようになってからだいぶ経ちましたが
C#やVB.NETばかりでやらしてもらってますので
Streamは知ってても使ったことがないんですね~。
なのでメモ。
C#erならLINQを使えて当たり前。
なのでJavaerはStreamを使えて当たり前なのでしょう。
では下記C#のようなコードをJavaで書いたらどうなるのか?
using System; using System.Collections.Generic; using System.Linq; namespace LINQSample { class Program { static void Main(string[] args) { // 偶数を取得 var list1 = new List<int> {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; var list2 = list1.Where(x => x % 2 == 0); list2.ToList().ForEach(x => Console.WriteLine(x)); } } }
下記がJavaですね。
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.*; class StreamSample { public static void main(String args[]) { // 偶数を取得 List<integer> list1 = new ArrayList<integer>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); Stream<integer> list2 = list1.stream().filter(x -> x % 2 == 0); list2.forEach(x -> System.out.println(x)); } }
出力結果
2
4
6
8
10
ふむふむ。
stream()をカマさないとダメなわけですね。
少し面倒かも。。。
他にもいろいろと試したかったのですが
VS Codeのバージョンアップで1.36.0となり
(長い間更新してなかった。。。)
設定がガラっと変わってしまったり
一部の機能が使えなくなってしまったりと
そちらに時間を取られてしまいました。。。
なので次回以降でC#のLINQとの書き方の違いなどをもう少し掘り下げて
メモっていきます。
ちなみに、Javaの使い手をJavaerなんて書きましたが
他の言語の呼び名なんか見てみるとおもしろいですね。
PHP:PHPer(ペチパー)・・・ペチパーて
Python:Pythonista(パイソニスタ)、Pythonian(パイソニアン)・・・呼ばれたい
JavaScript:JSer(ジェイサー)・・・なんかかっこいい
Go:eGoist(エゴイスト)・・・ヤバw
AWK:awker(オーカー)・・・The Walking Dead観たい気分になるね
Scala:Scalalian(スカラリアン)、Scalman(スカルマン)・・・ホラーマンみたいな感じ?
Visual Basic:VBer(ヴィーバー)・・・歯が出てそう
他にもいろいろあるようですが、こんな感じらしいですわ。
0 件のコメント:
コメントを投稿