这与另一个问题(Java中的功能数据结构)非常相似,但答案并不特别有用。
我需要使用标准Java集合的不变版本(例如,HashMap / TreeMap / ArrayList / LinkedList / HashSet / TreeSet)。所谓“不可变”,我指的是功能意义上的不可变(例如纯功能数据结构),其中对数据结构的更新操作不改变原始数据,而是返回相同类型数据结构的新实例。通常情况下,数据结构的新实例和旧实例将共享不可变数据,以便在时间和空间上高效。
据我所知,我的选择包括:
但我不确定这些是否对我特别有吸引力。我有几项要求/要求:
有什么建议吗?
发布于 2015-11-05 13:08:58
我花了一些时间让Clojure持久/不变的数据结构在Java中工作,使用合理的构造函数和泛型作为Pure4J的一部分。
这还包括@ImmutableValue类,以确保集合不仅不可变,而且您输入的值也是不可变的。
希望这能有所帮助。
https://stackoverflow.com/questions/3025064
复制相似问题