为什么java.util.List.clear()是"可选操作"?

时间:2014-09-11 12:40:28

标签: java list

根据Javadoc

  

void clear()

Removes all of the elements from this list (optional operation). The list will be empty after this call returns.

为什么清除List是可选操作?

这不会清除RAM以清除包含数千个对象的List吗?

2 个答案:

答案 0 :(得分:12)

List可能是不可变的。

List不可变时应该怎么做?您无法清除不可变List,因此方法clear()必须是可选操作。

答案 1 :(得分:3)

它与RAM清除无关,它的GC最终将垃圾收集这些对象。

更多的是关于明显无法完成工作的案例。

示例是当您尝试通过调用Arrays.asList(arrayObject)从数组中获取列表时,此列表无法修改。此操作导致java.lang.UnsupportedOperationException。