这与另一个问题(Java中的功能数据结构)非常相似,但答案并不特别有用。
我需要使用标准Java集合的不变版本(例如,HashMap / TreeMap / ArrayList / LinkedList / HashSet / TreeSet)。所谓“不可变”,我指的是功能意义上的不可变(例如纯功能数据结构),其中对数据结构的更新操作不改变原始数据,而是返回相同类型数据结构的新实例。通常情况下,数据结构的新实例和旧实例将共享不可变数据,以便在时间和空间上高效。
据我所知,我的选择包括:
但我不确定这些是否对我特别有吸引力。我有几项要求/要求:
有什么建议吗?
发布于 2010-06-11 18:18:07
在我看来,你已经知道你的选择是什么了,你只是对其中任何一个都不满意。以下是我对你提供的三种选择的看法:
Functional --这个看起来最适合您。它适合您的所有需求,但您不喜欢文档。从我的角度来看,这些文档看起来很基本,但是很有用。他们的代码段应该能让你快速起床和运行。学习曲线似乎几乎不存在,这将有助于缓解缺乏文档。FYI,核心Java的TreeMap也是基于红黑树的.
Scala --如果我处在你的位置上,我会做出这样的选择。您似乎不想学习一种新的语言,但是Scala是一个从Java到Scala的非常简单的转换。一开始,您可以编写非常类似java的代码,并慢慢地采用更多的功能习惯用法。Java <-> Scala互操作在两个方向上都非常出色。
--尽管我非常喜欢Clojure,但由于java开发人员的语法和陡峭的学习曲线,在这个特殊的情况下很难推荐它。
发布于 2013-03-07 12:41:12
发布于 2010-06-11 18:10:13
Scala
您可以从另一种语言中的方法调用任一语言的方法。
http://www.scala-lang.org/faq/4
https://stackoverflow.com/questions/3025064
复制相似问题