社内se × プログラマ × ビッグデータ

プログラミングなどITに興味があります。

Java challenge thread with lamda

何が出力されるのか?

public static void main(String[] args) throws InterruptedException {
	Runnable r = () -> {
		for(int i = 0; i <= 10000; i++) {
			System.out.println(i);
		}
		System.out.println("Running!");
	};
		
	Thread thread = new Thread(r);
	thread.start();
	thread.join();
}

考察
Runnable r の定義が見慣れないのですが。
単純に考えると、つくられたスレッドの中で、i が 0 から 10000 まで出力された後、"Running!"が出力されて終わる気がします。

結果
0
1
2
3
....
9998
9999
10000
Running!

期待していた通りの出力でした。
たぶん、このチャレンジの意図は、Runnable r の定義の仕方なのかなと思います。
lamda であればこんな風に書けますよみたいな。

以下の記事のように、Runnable interface を実装する方法と比較すると、lamda を使った方が断然簡単に書けますね。
blueskyarea.hatenablog.com