该接口中包含的“破坏性”方法,即修改它们在其上操作的地图的方法被指定为抛出UnsupportedOperationException(如果此地图不支持该操作)。什么是java中的破坏性和非破坏性方法?
-4
A
回答
1
一个简单的解释是破坏性方法是一种改变对象属性的方法。您不会改变对象的属性的非破坏性方法。
就你而言,破坏性意味着Map的内容将被修改,并且非破坏性将是一种在不修改内容的情况下实现目标的方法。
如果您举另一个例子,假设您有ArrayList对象list1
和list2
,并且您希望它们中的元素位于同一列表中。
list1.addAll(list2);
这样做,但你要改变list1
中的元素数量。所以这是破坏性的的形式。你通过追加更多的元素来破坏list1
。
List<Type> list3 = new ArrayList<Type>(list1);
list3.addAll(list2);
在这种情况下,你满足你的目标摆在list1
和list2
元素在同一个桶,但没有通过创建一个名为list3
新的列表改变它们中的任何一个,并用它来把所有的元素在你的这是非破坏性的这样做的方式,因为你在这里没有改变list1
,它始终保持不变。
1
对于其他人:问题是关于java.util.Map
接口,这句话是在它的文档中。
破坏性和非破坏性的方法不是一般的Java而言,它只是在此界面的范围。
正如引用句子中所述,破坏性方法是修改映射内容的那些方法,例如put
,clear
或remove
。非破坏性方法是仅执行读取操作的方法,如get
,containsKey
或containsValue
。
相关问题
- 1. 为什么ListAppend是非破坏性的,而ArrayAppend和StructInsert都具有破坏性?
- 2. 归并 - 破坏性与非破坏性Java中
- 3. 非破坏性spl_autoload_register
- 4. Javascript中破坏性与非破坏性方法的命名约定
- 5. npm非破坏性更新
- 6. 什么是破坏性更新?
- 7. 是CALayer insertSublayer:atindex:破坏性的?
- 8. Cookie破坏会话破坏,为什么?
- 9. 什么是非破坏性的替代方法存在于类向量中c
- 10. Ruby中的非破坏性拆分
- 11. lisp中的非破坏性排序?
- 12. OpenGL中的非破坏性滤镜
- 13. 什么是lisp的非破坏性版本?
- 14. Java - 防止破坏方法
- 15. 单元测试破坏性方法
- 16. java2d对象的非破坏性转换
- 17. 非破坏性的全屏mobclix广告
- 18. 破坏不破坏
- 19. 破坏不破坏
- 20. 从散列中删除密钥的非破坏性方法
- 21. 破坏性的方法和爆炸方法在Ruby中
- 22. 非破坏性原子添加?
- 23. PHP - 非破坏性输入消毒
- 24. AutoMapper非破坏性列表核对?
- 25. 破坏性的Git提交?
- 26. 的Java性能的填充破坏
- 27. Java Path.startswith()破坏?
- 28. 什么是非破坏性地向矢量附加值的惯用方式?
- 29. 破坏黑莓持久性
- 30. Rails:对象破坏性能
什么接口?哪张地图? – SilverNak
你知道可变和不可变操作是什么吗?听起来类似 – vikingsteve
谢谢SilverNak,那是Map接口 – Subbbu