我使用如下结构:
HashMap < EnumA , HashMap < Integer , LinkedList < EnumB > > > OverallMap
如果我这样做:
OverallMap . clear ( )
clear()
(HashMap对象,Integer对象和LinkedList对象)丢弃的所有内容最终都会被垃圾收集,或者我必须一直迭代到列表并调用在clear()
内部地图然后clear()
外部地图之前对它们进行清除()?
答案 0 :(得分:9)
只要没有别的东西引用那些其他对象,它们就会被垃圾收集。
答案 1 :(得分:1)
您需要做的只是在顶层调用clear()
,除非在其他地方引用这些集合,但您只能在一个地方清除它们。
答案 2 :(得分:0)
是的,如果您使用.clear(),那么除了一些OverallMap内部构件之外的所有内容都将被垃圾收集。