gpt4 book ai didi

java - Java 的不可变 TreeMap ?

转载 作者:行者123 更新时间:2023-11-29 04:38:46 24 4
gpt4 key购买 nike

我正在寻找 Java 中不可变 TreeMap 的实现,它允许通过共享相同部分进行写时复制样式修改。所以,本质上到底是什么 ImmutableJS为 JavaScript 做,只为 Java 做。

如果有人碰巧不熟悉 ImmutableJS 的工作原理,下面是我希望它在 Java 中的样子:

ImmutableTreeMap<String, String> map = new ImmutableTreeMap<>();
ImmutableTreeMap<String, String> map1 = map.put("hello", "world");
ImmutableTreeMap<String, String> map2 = map1.put("foo", "bar");
// the base maps should still remain the same
assertEquals(0, map.size());
assertEquals(1, map1.size());

在上面的示例中,map2 不会复制树中存储hello -> world 的部分,它会重新使用该部分。

有没有这样的实现可用,还是我必须继续从头开始创建一个?

最佳答案

您正在寻找“持久性” HashMap ,也称为“哈希数组映射特里树”。

应该注意“树”与“trie”数据结构不同。

您会发现一些 java HAMT,包括来自 paguro、pcollections 和 javaslang 项目的,或者您可以使用为 jvm 编译的 clojure 或 scala 中的规范

关于java - Java 的不可变 TreeMap ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40135627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com