java - 识别集合中的重复项

标签 java set duplicates

集合如何知道输入的值是重复的?我知道 set 会忽略重复值,但它如何知道该值是重复的?

最佳答案

它首先搜索集合中输入的值。如果搜索返回集合中存在等于输入值的元素,则不会插入该元素。

此搜索的执行方式取决于Set 实现。简而言之,HashSet 将使用输入值的 hashCode() 方法在其底层数组中查找存储桶,然后输入值的 equals() 方法来检查驻留在该存储桶上的元素之间的相等性。对于 TreeSet,使用 Comparator

简而言之,搜索Set是否包含值的算法取决于其实现。

关于java - 识别集合中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31662634/

相关文章:

java - Jython 能取代 Java 吗?

arrays - 如何在 TypeScript 中将 Set 转换为 Array

Java 集合/集合问题

redis - 大型集合的 SSCAN 与 SMEMBERS 资源使用情况

mysql - 从不同的相关记录组中选择两列之一中包含重复值的所有行

mysql - 避免一对多关系中的许多查询的最佳方法

java - 错误 ':app:packageAllDebugClassesForMultiDex'。 > java.util.zip.ZipException : duplicate entry: com/squareup/picasso/RequestWeakReference

java - 对编译器处理继承和方法调用感到困惑

java - 为什么 Java 8 不允许非公共(public)默认方法?

java - Oracle 行锁用于相同数据时的更新