2017-11-06 7 views
4

私は就職の面接(マイクロソフト)でこの質問をしました。例えば、実装する
方法:
.stream()、.filter()、.MAP()、flatMap()、分())(カウント、(減らす)、GROUPBY()
Java 7以上を使用してJava 8 Stream APIを実装する方法は?

など

オープンな質問ですが、面白いと思います。あなたのJava7とJava6のプロジェクトでStreamAPIを使用する能力を得るために

おかげ

+4

を実装していますか?よく、 'filter'、' map'、 'min' ...' groupBy'はかなり簡単に実装できますが、 'guava'はjava-8の前にそれを行いました。自明のことは、就職面談の回答には些細なことです。 – Eugene

+0

私はそれが同じ方法で実装できると思っています。ちょうどラムダなしで、それは巨大な混乱で、本当に読みにくいですが、完了した可能性があります – Lino

+0

@Linoなぜそれは巨大な混乱でしょうか?私はストリーム操作がオプションではないときにguavaを使ってjdk-7プロジェクトで作業します。 – Eugene

答えて

4

一つの方法は、https://github.com/streamsupport/streamsupport Streamsupportは、Java 8 java.util.function(機能インタフェース)のバックポートされ、java.utilのstreamsupportライブラリを追加しますJava 6または7のユーザー向けのストリーム(ストリーム)API

0

これらの関数を自分自身で作成することは、非常に厳しいテストを意味するので、私は時間を無駄にしません。むしろKotlinを使用したいと思います。 6から始まる任意のJavaで動作し、これらの機能(lambdaを含む)のほかにも多くの機能を備えています。さらに、ジェネリック実装の部分的な問題を部分的に解決するコアJavaとの互換性が非常に優れています。

2

ここには良い例があります:Lightweight-Stream-API。これはイテレータによってAndroid/Java 7用のほぼすべてのストリームAPIを実装しています。

関連する問題