자바에서 불변의 트리 맵을 구현하려고합니다. 동일한 파트를 공유하면서 copy-on-write 스타일 수정이 가능합니다. 따라서 본질적으로 정확하게 ImmutableJS이 자바 스크립트 용으로 제공됩니다.Java 용 Immutable Tree Map?
위의 예에서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
가 저장 트리의 부분을 복사 할 것 : 사람이 ImmutableJS가 여기에 작동하는 방법에 익숙하지 않은 것을 일어나는 경우
내가 자바로 그것을 싶은 것이있다 hello -> world
이면 해당 부분을 다시 사용합니다.
사용할 수있는 구현이 있습니까? 아니면 처음부터 새로 만들어야합니까?
그것을 얻을하지 않는 JVM의 컴파일 Clojure의 또는 스칼라에서 정규 것들을 사용할 수 있습니다 왜 저를 위해지도를 복사해야합니까? 이것은 거의 동일합니다 :'map = new HashMap(); map.put ("hello", "world"); map1 = 새로운 HashMap (지도); –
예,'map1 = new HashMap (map)'은'map'에서 데이터의 실제 사본을 생성한다는 것을 제외하고는 피하고 싶습니다. 가능한 경우'map1'은 데이터 구조를'map'과 공유해야합니다 (불변이므로). – Alan47
찾고있는 용어는 _persistent_ 맵 구현입니다. 그걸 검색하면 도움이 될 것입니다. –