java - 当我尝试从 HashSet 中删除不存在的元素时,为什么它没有给出运行时错误?

标签 java hashset

当我尝试从 HashSet 中删除不存在的元素时,为什么它没有给出运行时错误? Please see following program on ideone有输出。

import java.util.*;
public class HashSetTest2 {
    public static void main(String [] args){
       HashSet hs=new HashSet(); 
       hs.add("B");
       hs.add("A");
       hs.add("D");
       hs.add("E");
       System.out.println(hs);
       hs.add("F");           
       hs.remove("K");// Not present
    }    
}

//运行成功
输出: [D, E, F, A, B]

最佳答案

接口(interface)就是这样创建的:http://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html#remove(java.lang.Object)

如果你想知道集合中是否包含被移除的对象,只需引用 boolean 值,方法 remove 返回。

boolean existed=hs.remove("K");
if (!existed) {
  //You can throw your runtime exception here if you prefer it that way
}

关于java - 当我尝试从 HashSet 中删除不存在的元素时,为什么它没有给出运行时错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26778668/

相关文章:

java - 通过Gradle运行Java类时传递系统属性和参数时出现问题

java - Android: 包 android.support.v7.app.AlertDialog 不存在

java - 为什么 Java 中的包装器类的行为不像引用类型?

java - Spring MVC 获取当前登录用户

java - HashSet 实现中的空对象

java - 如何在Servlet中加载分类器(Weka)

java - Java 中的 Set 不允许重复,但它接受具有相同参数的 StringBuffer 对象。为什么?

rust - 我可以有效地从 HashSet 中弹出吗?

java - 简化哈希集重复检测器的代码

java - 循环遍历对象的 HashSet Java