Java集合clear方法与赋空值比较


我们中的一些人可能熟悉Java 集合框架中的clear() API。在这篇文章中,让我们讨论这个 clear() API 的目的是什么?使用此 API 对性能有何影响?调用此 API 时,JVM 下会发生什么情况?

详细点击标题

结论:
clear()方法循环遍历底层“Object[]”中的所有元素,并将它们分配给“null”值。这是一个耗时的过程,尤其是在包含大量元素的集合上,例如我们包含 100 万个元素的示例。在这种情况下,将“ArrayList”变量分配给“null”会更高效。

何时使用 CollectionClear() API?

这就提出了一个问题,我们是否应该永远不调用“clear()” API,因为它对内存和处理有影响。虽然我会投票支持这个选项,但在某些情况下,clear() API 可能有它的用例:

  • A。通过引用传递:如果您将 Collection 对象作为对代码其他部分的引用传递,则分配'null'值将导致著名的'NullPointerException'。为避免该异常,您可以使用“ clear()” API。
  • b. 集合大小很小:如果您只创建几个集合实例并且它们的大小非常小(比如只有 10、20 个元素),那么调用“clear()” API 或分配 null 可能不会有太大区别。