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
再利用します。
利用可能なそのような実装はありますか、それとも最初から作成する必要がありますか?