Java 一旦使用Google Guava创建了不可变版本,如何丢弃原始集合?

Java 一旦使用Google Guava创建了不可变版本,如何丢弃原始集合?,java,guava,immutability,Java,Guava,Immutability,我有一个地图如下,一旦我得到了原始地图的不变版本,我就不再需要原始地图了。有没有办法让GC回收它 Map<String, String> map = new TreeMap<>(); map.put("1", "one"); map.put("2", "two"); map.put("3", "three"); ImmutableMap<String, String> IMMUTABLE_MAP = ImmutableMap.copyOf(map); Ma

我有一个地图如下,一旦我得到了原始地图的不变版本,我就不再需要原始地图了。有没有办法让GC回收它

Map<String, String> map = new TreeMap<>();
map.put("1", "one");
map.put("2", "two");
map.put("3", "three");

ImmutableMap<String, String> IMMUTABLE_MAP = ImmutableMap.copyOf(map);
Map Map=newtreemap();
地图放置(“1”、“1”);
地图放置(“2”、“2”);
地图。放置(“3”、“3”);
ImmutableMap IMMUTABLE_MAP=ImmutableMap.copyOf(MAP);

您可以通过不再对地图进行任何引用,使其符合垃圾收集的条件。这将在
map
超出范围时自动发生。如果这对您来说“太晚了”,您可以显式地将
null
分配给
map


无论哪种方式,实际的垃圾收集都是在JVM喜欢的情况下在后台进行的

您可以通过不再对映射进行任何引用,使其符合垃圾收集的条件。这将在
map
超出范围时自动发生。如果这对您来说“太晚了”,您可以显式地将
null
分配给
map


无论哪种方式,实际的垃圾收集都是在JVM喜欢的情况下在后台进行的

另一个答案是正确的,但你应该尝试使用

ImmutableMap<String, String> map =
         ImmutableMap.<String, String>builder()
    .put("1", "one")
    .put("2", "two")
    .put("3", "three")
    .build();
ImmutableMap=
ImmutableMap.builder()
。付诸表决(“1”、“1”)
.put(“2”、“2”)
.put(“3”、“3”)
.build();
生成器针对其功能进行了优化,您通常可以在单个表达式中编写所有内容


更好的是

ImmutableMap<String, String> map = ImmutableMap.of(
    "1", "one",
    "2", "two",
    "3", "three");
ImmutableMap=ImmutableMap.of(
“1”,“1”,
“2”,“2”,
“3”、“3”);

它最多适用于四个键值对。

另一个答案是正确的,但您应该尝试使用

ImmutableMap<String, String> map =
         ImmutableMap.<String, String>builder()
    .put("1", "one")
    .put("2", "two")
    .put("3", "three")
    .build();
ImmutableMap=
ImmutableMap.builder()
。付诸表决(“1”、“1”)
.put(“2”、“2”)
.put(“3”、“3”)
.build();
生成器针对其功能进行了优化,您通常可以在单个表达式中编写所有内容


更好的是

ImmutableMap<String, String> map = ImmutableMap.of(
    "1", "one",
    "2", "two",
    "3", "three");
ImmutableMap=ImmutableMap.of(
“1”,“1”,
“2”,“2”,
“3”、“3”);

它最多可用于四个键值对。

啊,我明白了。所以它会自动消失。谢谢。啊,我明白了。所以它会自动消失。谢谢,谢谢,@maaartinus,这很有帮助!谢谢,@maaartinus,这很有帮助!