我正在寻找Java中不可变树映射的实现,它允许通过共享相同部分进行写时复制样式修改。因此,本质上,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
,它会重新使用该部分。
有没有这样的实现,还是我必须从头开始创建一个?