【发布时间】:2021-04-04 22:16:01
【问题描述】:
这段代码会不会因为多次使用new关键字而占用大量内存空间?
private static LinkedList<String> removeDuplicates(LinkedList<String> linkedList) {
return new LinkedList<>(new HashSet<>(linkedList));
}
【问题讨论】:
-
一般回答:不,返回这样的“新”对象不是内存问题。在这种情况下,如果输入列表包含许多元素,可能会有些顾虑,但首先要注意的是代码是否正确。记忆排在第二位。
-
这真的取决于集合的大小和它的持续时间。垃圾收集器在正常情况下会删除未使用的对象,但是,如果您的代码没有以适当的方式处理您的收集,它很容易耗尽内存。
-
You shouldn't specify
LinkedList,事实上如果你使用ArrayList作为你的返回值,你会使用更少的内存。