如何使用Java 7或更早版本实现Java 8 Stream API?

我在面试中被问及这个问题(微软)。
实施方法举例如下:
(),.filter(),.map(),flatMap(),min(),count(),reduce(),groupBy()
等等

这是一个相当开放的问题,但我认为是一个有趣的问题。

谢谢

在Java7和Java6项目中使用StreamAPI的一种方法是添加一个streamsupport库https://github.com/streamsupport/streamsupport Streamsupport是Java 8 java.util.function(函数接口)和java的后端。用于Java 6或7的util.stream(流)API

这里是一个很好的例子: Lightweight-Stream-API 。 它通过迭代器实现了Android / Java 7的几乎所有流API。

我不会浪费时间创建这些功能,因为这也意味着相当严格的测试。 我宁愿使用Kotlin 。 它适用于从6开始的任何Java,并具有所有这些功能(包括lambdas)以及其他许多功能。 另外它提供了与核心Java相当好的兼容性,部分解决了泛型实现的缺陷。