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

为什么java.util.List.clear()是一个;可选操作";?,java,list,Java,List,根据报告: 无效清除() 为什么清除列表是可选操作 这不会清除RAM以清除包含数千个对象的列表?可能列表是不可变的 当列表不可变时,应该怎么做?您无法清除不可变的列表,因此方法clear()必须是可选操作。它与RAM清除无关,它的GC最终会对这些对象进行垃圾收集 这更多的是关于那些显然无法完成任务的情况 例如,当您尝试通过调用array.asList(arrayObject)从数组中获取列表时,无法修改此列表。此操作导致java.lang.UnsupportedOperationExceptio

根据报告:

无效清除()

为什么清除列表是可选操作


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

可能
列表是不可变的


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

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

这更多的是关于那些显然无法完成任务的情况


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

@Joe这不是重复的,因为另一个问题只问什么是可选操作,而这个问题问为什么特定方法是可选的。请检查注释和其他答案。“如果您有一个ImmutableSet,那么如果操作不存在就有意义”已存在于现有问题中。+1 Arrays.asList不是不可变的,但是元素的数量不能更改。
Removes all of the elements from this list (optional operation). The list will be empty after this call returns.