什么对象具有clear方法:主流开发对象清单

什么对象具有clear方法:Java里所有实现Collection、Map接口的集合实例,JavaScript里ES6的Map、Set实例,以及控制台console对象都自带clear方法;普通数组、普通字面量对象没有原生clear,调用会直接报错,只读集合调用clear还会抛出不支持操作异常,仅可变集合可正常执行清空操作。

Java中带clear方法的对象

Java的java.util.Collection接口强制定义clear方法,所有实现类都自带该方法,依据JavaSE24官方接口文档,这属于集合的可选操作。

接口类型常用实现类能否调用clear
Collection(List)ArrayList、LinkedList、ArrayDeque可变实例可以调用
Collection(Set)HashSet、TreeSet、LinkedHashSet可变实例可以调用
MapHashMap、TreeMap、LinkedHashMap可变实例可以调用
只读集合Collections.unmodifiableList生成对象不可以调用,会抛出异常

你可以直接判断:只要对象是可变集合实例,就能调用clear清空全部内容,集合容量不会被修改,仅清空内部元素。

JavaScript中带clear方法的对象

JS原生只有三类对象自带clear方法,普通Array与{}字面量对象没有这个方法,不要混用。

1.Set实例:newSet()生成的集合,可以清空所有成员,执行后size变为0。

2.Map实例:newMap()生成的键值对容器,一键清空所有键值对。

3.console对象:console.clear()仅在终端TTY环境生效,网页控制台与非终端环境不会执行清空动作。

容易踩坑的边界条件

只读集合不能调用clear,这是最常见报错场景。

如果你把集合用Collections.unmodifiableList包装之后,再执行clear代码,程序会直接抛出UnsupportedOperationException,这类只读对象不支持清空操作。

JS里如果你给普通数组调用clear,会提示方法不存在,只能用arr.length=0来实现清空效果,不能直接调用clear。

快速判断小技巧

先看类型:集合容器类优先检查;再看读写属性:只读容器一律没有可用的clear方法。

敬慕百科汇集百科知识与游戏文化,带你发现世界的每一个精彩角落。

想要了解更多关于什么对象具有clear方法的文章欢迎访问:百科