Pie*_*ste 16 java jvm functional-programming data-structures
有没有人知道Java/JVM数据结构库提供熟悉的Java数据结构的功能(也就是功能意义上的不可变或"持久")等价物?
"功能"是指对象本身是不可变的,而对这些对象的修改则返回与父对象在适当位置共享相同内部的新对象(为了提高时间和空间的效率;一个天真的实现可以复制整个事物每一次写).
就像Java的并发库一样,这似乎不是我能够或应该自己实现的东西,所以拥有一个我可以在JVM中使用的功能数据结构库会更好.
Abh*_*kar 13
Clojure的不可变和持久数据结构已被提取为Java库.您可以在http://github.com/krukow/clj-ds找到它们.这些数据结构不依赖于Clojure运行时,因此可以clojure.jar在应用程序的类路径中使用.他们已经通过Java代码顺利运行.
请注意,使用这些不可变数据结构可能不是Java中的惯用语.
github页面没有可供下载的jar.您必须自己检查源并构建jar.
Functional和immutable是大多数Scala集合库的核心属性.Scala编译到JVM并与Java很好地互操作.Scala语法也比Clojure(Lisp语法)更接近Java.
这是Scala集合API的介绍页面. http://www.scala-lang.org/docu/files/collections-api/collections.html