小编Mar*_*tin的帖子

在 Java 中折叠顺序流

我习惯于在 Scala 中编程,但我必须编写一些 Java,并且我正在尝试执行以下 Scala 代码段的等效操作:

trait Options[K, V] {
  def add(key: K , value: V): Options[K, V]
}

val options: Options[T, U] = ???
val elems: List[(T, U)] = ???
elems.foldLeft(options) {
  case (opts, (key, value)) => opts.add(key, value)
}
Run Code Online (Sandbox Code Playgroud)

也就是说,我在elemsinside折叠元素options,在每一步生成一个新实例。

我尝试使用 Java 的Stream#reduce

interface Options<K, V> {
  Options<K, V> add(K key, V value);
}

Options<K, V> options = ???
Stream<Tuple2<K, V>> elems = ??? // This is Reactor's Tuple2
elems.reduce(options, (opts, opt) …
Run Code Online (Sandbox Code Playgroud)

java reduce functional-programming fold java-stream

6
推荐指数
1
解决办法
1195
查看次数

标签 统计

fold ×1

functional-programming ×1

java ×1

java-stream ×1

reduce ×1