将重复项添加到Set时,为什么不出错?

Sop*_*kre 4 java set

我向a添加了两次相同的整数Set,但是尽管Set不允许重复,但它不会给出任何错误.为什么是这样?

 Set<Integer> set = new HashSet<Integer>();
 set.add(1);
 set.add(1);
Run Code Online (Sandbox Code Playgroud)

Era*_*ran 6

Set:add当您尝试添加已经存在的值时,不应该给您一个错误Set.它只会返回false而不是将值添加到Set.

检查JavaDoc:

布尔加法(E e)

如果指定的元素尚不存在,则将其添加到此集合(可选操作).更正式地,如果集合不包含元素e2,则将指定的元素e添加到该集合中(e == null?e2 == null:e.equals(e2)).如果此set已包含该元素,则调用将保持set不变并返回false.结合对构造函数的限制,这可以确保集合永远不会包含重复元素.