Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 8 如何使用Java7或更早版本实现Java8流API?_Java 8_Java Stream - Fatal编程技术网

Java 8 如何使用Java7或更早版本实现Java8流API?

Java 8 如何使用Java7或更早版本实现Java8流API?,java-8,java-stream,Java 8,Java Stream,我在一次求职面试中被问到这个问题(微软)。 要实现的方法,例如: .stream()、.filter()、.map()、flatMap()、min()、count()、reduce()、groupBy() 等 这是一个相当开放的问题,但我认为是一个有趣的问题 感谢在Java7和Java6项目中使用StreamAPI的一种方法是添加streamsupport库streamsupport是Java 8 Java.util.function(函数接口)和Java.util.stream(流)的后端口J

我在一次求职面试中被问到这个问题(微软)。
要实现的方法,例如:
.stream()、.filter()、.map()、flatMap()、min()、count()、reduce()、groupBy()

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


感谢

在Java7和Java6项目中使用StreamAPI的一种方法是添加streamsupport库streamsupport是Java 8 Java.util.function(函数接口)和Java.util.stream(流)的后端口Java 6或Java 7用户的API我不会浪费时间自己创建这些函数,因为它也意味着相当严格的测试。我宁愿使用。它适用于从6开始的任何Java,并具有所有这些特性(包括lambdas)以及许多其他特性。此外,它还提供了与核心Java相当好的兼容性,部分解决了泛型实现的缺陷。

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

自己实现?嗯,
过滤器
映射
最小值
。。。可能是
groupBy
可以实现得相当简单,我的意思是
guava
在java-8之前就已经实现了。我所说的“琐碎”是指对于面试答案来说已经足够琐碎了。我猜它可以用同样的方式实现,只是没有lambdas,这将是一个巨大的混乱,也不是真正的可读性,但它本来是可以实现的done@Lino为什么那会是一片混乱?我使用guava在jdk-7项目中工作,在流操作不是一个简单的任务时,这非常正常option@Eugene是的,确切地说,冗长是我试图解释的:)我们这样做是为了一个项目,它工作得很合理,即使它不能与Java8语法竞争。但是,您可以基于泛型、反射和代码生成预先构建现有函数或工厂,例如
方法(“isEmpty”)。asPredicate(String.class)
;不像
String::isEmpty
那样简洁,但仍然比使用匿名内部类实现
谓词
要短。但这不是问题所在;问题是“如何实现流API”,答案是,就像任何其他接口一样,不是吗?