hashmap相关内容

如何清除要被垃圾收集的对象(HashMap) - Java

所以我在这里拥有的是一个 java 程序,它处理大量数据并将其存储到对象中(主要是哈希映射).在运行时间的某个时间点,数据变得无用,我需要丢弃,以便释放一些内存. 我的问题是丢弃这些数据以进行垃圾收集的最佳行为是什么? 我已经尝试了 map.clear(),但是这不足以清除地图分配的内存. 编辑(添加我尝试过的替代方案) 我也尝试过 system.gc() 来强制垃圾收集器 ..
发布时间:2022-01-08 14:34:12 Java开发

电话簿的数据结构,它可以按姓名搜索号码,也可以按号码搜索姓名

你知道以下面试问题的解决方案吗? 为电话簿设计一个数据结构,它可以安全且有效地按名称搜索数字,也可以按数字搜索名称. 详情: 在 stackoverflow 上找到的解决方案都是关于哈希表的,但是,我必须为此构建 2 个哈希表,这需要两倍的空间. 如何以一种节省时间和空间、类型安全的方式仅使用一个数据结构? 解决方案 这种数据结构被称为多索引容器.它们在大多数编程语 ..
发布时间:2022-01-08 14:33:56 其他开发

为什么HashMap的初始容量是16(2的幂)和Hashtable的初始容量是11(素数)?

如果您知道,请描述原因.我用谷歌搜索了它,但没有找到解释清楚的答案. 当您的 hashCode 为负数时,是否使存储桶的索引为正数? 解决方案 对于HashMap,存储Map的条目的数组中的索引是这样计算的(其中h 由 key 的 hashCode 计算得出): static int indexFor(int h, int length) {返回 h &(长度-1);} 其中 l ..
发布时间:2022-01-08 14:33:47 Java开发

为什么在搜索键是 O(n) 时,哈希表查找只有 O(1) 时间?

从技术上讲,根据我在这里阅读的帖子,哈希表在最坏的情况下确实是 O(n) 时间查找.但我不明白内部机制如何保证平均为 O(1) 时间. 我的理解是,给定一些 n 个元素,理想情况是有 n 个桶,这会导致 O(1) 空间.这就是我卡住的地方.假设我想查找一个键是否在字典中,这肯定需要 O(n) 时间.那么,当我想通过使用其键的哈希值来搜索元素是否在哈希表中时,为什么会有所不同呢?简而言之,使用 ..
发布时间:2022-01-08 14:33:39 其他开发

杰克逊:地图的反序列化

我正在使用 Jackson 反序列化一个 json 文件(我用 jackson 序列化了该文件).json 是一个简单的 HashMap,但是当我尝试反序列化时映射器会抱怨. org.codehaus.jackson.map.JsonMappingException:无法从 START_ARRAY 令牌中反序列化 java.util.HashMap 的实例 我的序列化 HashMap 字符串. ..
发布时间:2022-01-08 14:33:31 Java开发

将 HashMap 存储在另一个 HashMap 中并提高性能

我应该在另一个 HashMap 中创建一个 HashMap 如下所示,它可以根据键将值存储在内部 HashMap 中运行时外层HashMap 即程序所需的输出应该是格式 { 1 = {11 = "aaa",15 = "bbb"}, 2 = {13 = "ccc", 14 = "ddd"} } 其中 1,2 是 Outer HashMap 的键值. 下面是为其提供的代码有没有更好的 ..
发布时间:2022-01-08 14:33:25 Java开发

C ++中的哈希表v/s STL映射

我正在尝试学习 C++ 映射.只是想知道 STL map 的实现.我读到它采用二叉搜索树. STL 中是否有哈希表的实现? STL map 究竟是如何存储键值对的? 解决方案 典型的 STL 实现基于红黑树.C++ TR1 提供使用哈希表实现的 std::tr1::unordered_map.Boost 还提供了一个 unordered_map 哈希表实现. C++11 ..
发布时间:2022-01-08 14:33:08 C/C++开发

在单个后台线程定期修改它的同时读取 Map

我有一个类,我在 updateLiveSockets() 方法内每 30 秒从单个后台线程填充地图 liveSocketsByDatacenter ,然后我有一个方法 getNextSocket() 将被多个读取器线程调用以获取可用的活动套接字,该套接字使用相同的映射来获取此信息. 公共类 SocketManager {私有静态最终随机随机=新随机();private final Schedul ..
发布时间:2022-01-08 14:32:58 Java开发

更新 Java HashMap 键

我只是想知道,如果 HashMap 的键是可变的会发生什么,下面的测试程序证明了这一点,我无法理解 equals 和 hashCode 方法何时返回true 和相同的值,为什么 hashmap.containsKey 返回 false. 公共类 MutableKeyHashMap {公共静态无效主要(字符串[]a){HashMapmap = new HashMap ..
发布时间:2022-01-08 14:32:49 Java开发

需要一个对一个值具有多个键的 Java 映射/表.值通常会改变

我需要的是一个允许多个键访问单个对象的集合. 我需要对此对象进行频繁的更改. 它还必须对 500k+ 个条目有效. 解决方案 java.util.Map 的任何实现都可以做到这一点 - 没有限制 在单独的键下可以添加特定值多少次: Mapm = new HashMap();m.put("你好", 5);m.put("世界", 5);System.out.printl ..
发布时间:2022-01-08 14:32:39 Java开发

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

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

创建 HashMap 的不同方法

我最近一直在学习 HashMaps,但我有一个问题似乎无法得到明确的答案.主要区别 - HashMap hash1 = new HashMap(); 对比 HashMap 我认为当您定义 HashMap 时,它需要键和值.任何帮助将非常感激.谢谢. 解决方案 这些是你的选择: J2SE Map map = new HashMap(); J2SE 5.0+ 风格(使用泛型 ..
发布时间:2022-01-08 14:32:08 Java开发

找出一本大书中最常用的 10 个单词

我知道这已经在论坛上被问过几次,我没有找到任何可以被认为是最合适的解决方案的“标记"答案 - 所以再次询问: 我们从书中得到了一个非常大的文本,所有这些都无法放入记忆中.我们需要找到文本中出现频率最高的 10 个单词.执行此操作的最佳(时间和空间)方式是什么? 我的想法: 将文件分成 k 个大小的块(这样每个块都可以存储在内存中).现在,对每个块执行外部排序.一旦我们在磁盘上有 ..
发布时间:2022-01-08 14:31:27 其他开发

在 Java Map 中查找重复值?

我想在 HashMap 中显示值.HashMap 可能有重复的值(但不是重复的键),但我只想显示一次值. 所以我应该找出 Map 是否有重复值.我知道我们可以遍历 Map 并使用 map.containsValue(value) 的返回布尔值.我想知道是否存在任何方法来查找地图中的重复值,或者我们应该自己编写代码? 解决方案 一个简单的解决方案是将值列表的大小与值集进行比较. // ..
发布时间:2022-01-08 14:31:20 Java开发

多地图空间问题:番石榴

在我的 Java 代码中,我使用 Guava 的 Multimap (com.google.common.collect.Multimap) 使用这个: Multimap索引 = HashMultimap.create() 这里,Multimap 键是 URL 的一部分,值是 URL 的另一部分(转换为整数).现在,我分配我的 JVM 2560 Mb (2.5 GB) 堆空间(通过使用 Xm ..
发布时间:2022-01-08 14:31:13 Java开发

如何合并多个hashmaps还对java中相同键的值求和

我正在尝试合并多个哈希图也对相同键的值求和,我想用玩具示例解释我的问题如下 HashMapm = new HashMap();HashMapm2 = new HashMap();m.put("苹果", 2);m.put("梨", 3);m2.put("苹果", 9);m2.put("香蕉", 6); 我试过putall m.putAll(m2); 输出如下{香蕉=6,苹果=9 ..
发布时间:2022-01-08 14:30:51 Java开发