-4 java
该接口中包含的“破坏性”方法,即修改其所操作的地图的方法,被指定为在该地图不支持该操作时抛出 UnsupportedOperationException。
一个简单的解释是,破坏性方法是改变对象属性的方法。非破坏性方法不会改变对象的属性。
在您的情况下,破坏性意味着地图的内容将被修改,而非破坏性将是在不修改内容的情况下实现您的目标的一种方法。
如果再举一个例子,假设您有 ArrayList 对象list1,并且list2您希望它们中的元素位于同一个列表中。
list1.addAll(list2);
Run Code Online (Sandbox Code Playgroud)
这样就可以了,但是您正在更改 中的元素数量list1。所以这是一种破坏性的做法。您list1通过向其附加更多元素来进行破坏。
List<Type> list3 = new ArrayList<Type>(list1);
list3.addAll(list2);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您可以满足将元素放入list1同list2一个存储桶中但不更改其中任何一个的目标,方法是创建一个名为 的新列表list3并使用它将所有元素放入列表中。这是一种非破坏性的方法因为你在这里没有改变list1,它一直保持不变。