hashset相关内容

HashSet contains() 方法

我执行了下面的代码,发现输出是 false. 导入java.util.Set;导入 java.util.HashSet;公共类名{私有字符串第一个,最后一个;公共名称(字符串第一个,字符串最后一个){this.first = 第一个;this.last = 最后一个;}公共布尔等于(对象o){if (!(o instanceof Name))返回假;姓名 n = (姓名) o;返回 n.firs ..
发布时间:2022-01-17 18:53:24 Java开发

Scala中'HashSet'和'Set'的区别?

我对 Scala 的 HashSet 和 Set 类型感到非常困惑,因为它们似乎都在做同样的事情. 它们之间有什么区别? 在 Java 中也一样吗? 在我的参考中,它说 HashSet 是一个“显式集合类"(与 Set 相比).这是什么意思? 解决方案 Scala 的可变和不可变 HashSet 实现是可以实例化的具体类.例如,如果你明确要求一个新的 scala.collecti ..
发布时间:2022-01-17 18:44:19 其他开发

您如何确定两个 HashSet 是否相等(按值,而不是按引用)?

我正在尝试确定 .NET 3.5 (C#) 中的两个 HashSet 对象是否是相等的集合,即包含相同的值.这似乎是一个显然想要做的事情,但所提供的功能似乎都没有为您提供这些信息. 我能想到的方法是检查两个集合的计数是否相等并且一个集合是另一个集合的子集(不正确).我认为可能发生的唯一方法是它们是相等的集合.示例代码: HashSetset1 = new HashSet();set1.Ad ..
发布时间:2022-01-17 18:43:56 C#/.NET

为什么在 C# 中有 HashSet 而没有 Set?

老问题 我的理解是 C# 在某种意义上具有 HashSet 和 set 类型.我了解 HashSet 是什么.但是为什么 set 是一个单独的词呢?为什么不是每个集合都是HashSet? 新问题 为什么C#没有通用的Set类型,类似于Dictionary类型?从我的角度来看,我想要一个具有标准查找/添加/删除性能的集合.我不太关心它是用哈希还是其他东西实现的.那么为什么不创建一个 ..
发布时间:2022-01-17 18:29:17 C#/.NET

仅允许 .NET 中唯一项目的集合?

C# 中是否存在不允许您向其中添加重复项的集合?例如,用愚蠢的类 公共类客户{公共字符串名字 { 获取;放;}公共字符串姓氏{得到;放;}公共字符串地址 { 获取;放;}公共覆盖 int GetHashCode() {return (FirstName + LastName + Address).GetHashCode();}公共覆盖布尔等于(对象obj){客户 C = obj 作为客户;返回 ..
发布时间:2022-01-17 18:09:33 C#/.NET

如何对 HashSet 进行排序?

对于列表,我们使用 Collections.sort(List) 方法.如果我们想对 HashSet 进行排序怎么办? 解决方案 HashSet 不保证其元素的任何顺序.如果您需要此保证,请考虑使用 TreeSet 来保存您的元素. 但是,如果您只需要针对这一事件对元素进行排序,则只需临时创建一个 List 并对其进行排序: 设置 ..
发布时间:2022-01-17 18:06:03 Java开发

HashSet 包含重复的条目

当 equals 方法说它们相同时,HashSet 只存储值.我就是这么想的. 但是现在我将元素添加到 HashSet 中,其中 equals 方法返回 true 并且集合的大小仍在增长?对不起,我很困惑.一些我错了的提示会很好. 元素 t1 = new Element(false, false, false, false);元素 t2 = 新元素(真,真,真,真);元素 t3 = 新元素 ..
发布时间:2022-01-17 18:04:49 Java开发

Java:优化哈希集以进行大规模重复检测

我正在处理一个处理大量推文的项目;目标是在我处理重复项时删除它们.我有推文 ID,它以 "166471306949304320" 格式的字符串形式出现 为此,我一直在使用 HashSet,它可以正常工作一段时间.但是当我达到大约 1000 万个项目时,我彻底陷入困境并最终得到一个 GC 错误,大概来自重新散列.我尝试使用 定义更好的尺寸/负载 tweetids = new ..
发布时间:2022-01-10 13:54:18 Java开发

如果包含的元素被修改,Java HashSet 包含重复项

假设你有一个类并且你创建了一个 HashSet 来存储这个类的实例.如果您尝试添加相等的实例,则集合中只保留一个实例,这很好. 但是,如果您在 HashSet 中有两个不同的实例,并且您将其中一个作为另一个的精确副本(通过复制字段),则 HashSet 将包含两个重复的实例. 下面是演示这个的代码: public static void main(String[] args){Ha ..
发布时间:2022-01-10 13:09:54 Java开发

当对象 Hashcode 更改时,Hashmap 或 Hashset 中的查找会发生什么

在 Hashmap 中,提供的键的哈希码用于将值放置在哈希表中.在哈希集中,对象哈希码用于将值放置在底层哈希表中.也就是说,hashmap 的优点是你可以灵活地决定你想要什么作为 key,这样你就可以做这样的好事. 地图玩家 = 新的 HashMap(); 这可以将诸如玩家姓名之类的字符串映射到玩家本身. 我的问题是,当键的 Hashcode 发生变化时,查找会发生什么变化. 我希 ..
发布时间:2022-01-08 14:32:25 Java开发

在 HashSet/HashMap java中找到最大的数

我想在 HashSet 和 HashMap 中找到最大的数.假设我的 HashSet 中有数字 [22,6763,32,42,33],我想在当前的 HashSet 中找到最大的数字..我该怎么做?HashMap 也一样.我希望你能帮助我.谢谢你. 解决方案 你可以使用Collections.max(Collection) 找出任何集合中的最大元素.同样,对于 HashMap,您可以在其 k ..
发布时间:2022-01-08 14:26:15 Java开发

如果我将所有 [1, 2, 3, ..., n] 放入具有任何打乱顺序的 HashSet 并迭代 HashSet,为什么我会得到保证的排序顺序?

PS:这个 HashSet 是如何产生排序输出的?这篇文章没有回答我的问题.我知道如果我将任何数字放入哈希集中,我将不会得到排序. 但是,我发现如果我将所有 [1, 2, 3, ..., n] 放入一个 HashSet 任意打乱顺序 并迭代 HashSet,我将得到一个 保证排序顺序.我无法理解为什么它总是会发生.我已经测试了任何 n ..
发布时间:2022-01-08 14:24:01 Java开发

是什么导致 java.util.HashSet 和 HashMap.keySet() 类的 iterator() 排序稍微不可预测?

六年前,我花了几天时间试图找出我完全确定的框架在哪里随机响应.在仔细追踪整个框架以确保它都使用相同的 Random 实例之后,我继续通过单步代码进行追踪.这是高度重复的迭代自调用代码.更糟糕的是,该死的效果只有在完成大量迭代后才会出现.+6 小时后,当我在 javadoc 中发现 HashSet.iterator() 的一行表明它不能保证返回元素的顺序时,我终于束手无策了.然后,我检查了整个代码库 ..
发布时间:2022-01-08 14:15:57 Java开发

向 HashSet/HashMap 添加重复值是否会替换先前的值

请考虑以下代码: HashSet hs = new HashSet();hs.add("嗨");-- (1)hs.add("嗨");-- (2) hs.size() 将给出 1,因为 HashSet 不允许重复,因此只会存储一个元素. 我想知道如果我们添加了重复元素,那么它是替换前一个元素还是根本不添加它? 另外,对于同样的情况,使用HashMap会发生什么? 解决方案 以 ..
发布时间:2022-01-08 13:53:56 Java开发

为什么 Sun Java 中的 HashSet 实现使用 HashMap 作为其后盾?

查看Java 6的源码,HashSet实际上是使用HashMap实现的,在Set的每个条目上使用虚拟对象实例. 我认为条目本身的大小会浪费 4 个字节(在 32 位机器上). 但是,为什么还要使用呢?除了让代码更容易维护之外,还有什么理由使用它吗? 解决方案 其实不只是HashSet.在Java 6 中Set 接口的所有 实现都基于底层Map.这不是要求;这就是实现的方式.您可 ..
发布时间:2022-01-08 13:52:30 Java开发

迭代时从 HashSet 中删除元素

所以,如果我在迭代时尝试从 Java HashSet 中删除元素,我会得到 ConcurrentModificationException.如下例所示,从 HashSet 中删除元素子集的最佳方法是什么? 设置set = new HashSet();for(int i = 0; i 这是一个解决方案,但我认为它不是很优雅: 设置set = new HashSet();集合remov ..
发布时间:2022-01-08 13:45:49 Java开发

Java HashMap keySet() 迭代顺序是否一致?

我了解从 Map 的 keySet() 方法返回的 Set 不保证任何特定顺序. 我的问题是,它是否保证多次迭代的相同顺序.例如 地图地图 = 获取地图();for( K k : map.keySet() ){}...for( K k : map.keySet() ){} 在上面的代码中,假设地图没有被修改,那么对keySets的迭代是否会以相同的顺序进行.使用 Sun 的 j ..
发布时间:2022-01-08 13:42:20 Java开发

HashMap 是在 Java 内部使用 LinkedList 还是 Array 实现的?

HashMap 是如何在内部实现的?我在某处读到它使用 LinkedList 而其他地方它提到数组. 我尝试研究了 HashSet 的代码并找到了 Entry 数组.那么LinkedList用在哪里? 解决方案 基本上是这样的: 这是主数组↓[Entry] → Entry → Entry ← 这里是链表[入口][条目] → 条目[入口][空值 ][空值 ] 所以你有一个主数组, ..
发布时间:2022-01-01 18:19:27 Java开发