我正在寻找一个好的解释来说明Java 8中的“新”Streams和Java 7之前的“旧”I/O Streams之间的区别。对于没有任何函数式编程知识的人来说,很难理解它们是完全不同的东西,特别是因为它们的名称相同。我知道Stream API是全新的,甚至在某些方面具有革命性,但在我的幼稚思维中,在这两种情况下,我们都处理“事物”的序列,无论是字节、数据还是对象... 请问有人能提供一个好的解释吗?
就“流”而言,它们没有区别。流是一个抽象的短语,表示具有源和目的地的东西。而且它代表着一系列数据。
就这两种机制而言,它们之间有很多差异。例如,Java I/O 流只允许您读写数据。如果您想要处理该流中的数据,则没有内置机制可以实现。在 Java 8 中的流中,有额外的处理可能性,例如 map/filter 等。