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 件のコメント:
コメントを投稿