根据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吗?
答案 0 :(得分:12)
List
可能是不可变的。
List
不可变时应该怎么做?您无法清除不可变List
,因此方法clear()
必须是可选操作。
答案 1 :(得分:3)
它与RAM清除无关,它的GC最终将垃圾收集这些对象。
更多的是关于明显无法完成工作的案例。
示例是当您尝试通过调用Arrays.asList(arrayObject)从数组中获取列表时,此列表无法修改。此操作导致java.lang.UnsupportedOperationException。