hashset 删除元素用 remove() 方法,成功返回 true 否则 false;建议先用 contains() 判断或直接检查 remove() 返回值;自定义类需重写 equals() 和 hashcode();支持删除 null;批量删除用 removeall()。

HashSet 删除指定元素用 remove() 方法,传入要删的对象即可,删除成功返回 true,否则返回 false。
确认元素存在再删除(避免无效操作)
HashSet 的 remove() 方法不会报错,即使元素不存在也会安静地返回 false。如果业务逻辑依赖“是否真删掉了”,建议先用 contains() 判断:
if (set.contains(target)) { set.remove(target); }- 或者直接用
remove()的返回值判断:boolean wasRemoved = set.remove(target);
注意 equals() 和 hashCode() 的一致性
HashSet 依靠对象的 hashCode() 定位桶,再用 equals() 确认是否为同一元素。如果自定义类作为元素,必须正确重写这两个方法,否则 remove() 可能找不到目标——哪怕内容一样,但哈希值不同或 equals() 返回 false,就删不掉。
删除 null 元素是合法的
HashSet 允许存一个 null,所以 set.remove(null) 是有效调用。如果集合中确实有 null,会成功删除并返回 true;没有则返回 false。
批量删除多个元素
如果要删一组元素,可以用 removeAll(Collection>):
set.removeAll(Arrays.asList("a", "b", "c"));- 它会逐个调用
remove(),返回true当且仅当至少删掉一个元素











