hashmap相关内容

我怎样才能实现一个固定大小的hashmap?

我想实现一个hashmap,但我不允许它扩展。因为我知道我最多需要存储 N 元素,所以我可以预先为 N 元素分配一个数组对于我的散列表中的每个桶,以便在所有键在同一个桶中散列的最坏情况下,仍然可以存储 N 元素。但是我需要存储的元素相当大,所以对于大 N 这是非常低效的内存使用。 是否有可能通过固定数量的内存实现一个有效的 (根据内存)的hashmap,例如通过实现智能散列函数? (P ..
发布时间:2018-06-01 18:55:53 其他开发

为什么hashmap没有像ArrayList那样的ensureCapacity()方法?

ArrayList 和 HashMap 都有构造函数来设置初始容量,但 ArrayList 提供了 ensureCapacity(),以确保如果预计要插入一定数量的元素,内部数组已经增加。在某些情况下,也可能发生 HashMap 。那么为什么 HashMap 没有一个确保容量的方法可以保证桶已经准备好? 解决方案 结构像 ArrayList 和 HashMap 有一个 capacity ..
发布时间:2018-06-01 18:55:32 Java开发

如何获得Java Hashmap上碰撞次数的度量标准?

我正在实现一个自定义哈希函数,如果我碰到了一个HashMap存储桶,我怎么知道这个桶里有多少个元素? 解决方案 在API中没有直接的支持。用于存储存储桶的成员变量 table 甚至没有公开,所以扩展这个类不会让你感觉太远。 假设您正在评估哈希函数,而不是在生产代码中执行此操作,则可以使用反射来传递这些约束。 我设法打印内容的桶。从这一点来分析分配指标不应该很难。以下是代码: ..
发布时间:2018-06-01 18:52:46 Java开发

对象哈希码更改时,在Hashmap或Hashset中查找会发生什么情况

在Hashmap中,提供的键的哈希码用于将值放入散列表中。在Hashset中,obects哈希码用于将值放置在底层哈希表中。即hashmap的优点是你可以灵活地决定你想要什么作为关键,这样你就可以做出像这样的好事情。 地图<字符串,玩家GT; players = new HashMap(); 这可以将玩家名称等字符串映射到玩家本身。 ..
发布时间:2018-06-01 18:51:46 Java开发

Java:HashSet与HashMap

我有一个处理大量数据集的程序。这些对象最好存储在散列实现的容器中,因为程序不断寻找容器中的对象。 第一个想法是使用HashMap,因为方法获取和删除容器更适合我需要的用途。 但是,我来看看HashMap的使用很可能是内存消耗这是一个主要问题,所以我认为切换到HashSet会更好,因为它只使用 ,而不是 但是当我看到实现时,我知道它使用了一个底层的HashMap!这意 ..
发布时间:2018-06-01 18:46:43 Java开发

如何在Java中创建哈希表?

在Java中创建哈希表(或关联数组...)最直接的方法是什么?我的google-fu已经出现了一些例子,但有没有一个标准的方法来做到这一点? 有没有一种方法来填充表的关键列表 - >值对,而不单独调用每个对的对象的add方法? 解决方案 Map map = new HashMap(); Hashtable ht = new Hashtable(); 这两个类都 ..
发布时间:2018-06-01 18:44:46 Java开发

散列表的空间复杂度是多少?

32位密钥和32位指针分别存储在哈希表中的大小是多少? 是2 ^ 32时隙* 4字节(key)* 4字节(指向值的指针) = 4 * 10 ^ 6 * 4 * 4 = 64MB? 散列表。 解决方案 散列表与散列函数值和插槽不匹配。散列函数是以比散列函数范围小得多的参考矢量的大小来计算的。因为这个值是固定的,所以在空间复杂度计算中不考虑它。 因此,每个合理散列表的空间复 ..
发布时间:2018-06-01 18:44:32 其他开发

类图中的HashMap(UML)

我为我的Java应用程序构建UML 2.0类图。在我的代码中,我有HashMap数据类型的属性。但是,据我所知,在UML标准中没有HashMap数据类型。问题是 - 我可以使用HashMap作为类的属性的数据类型吗? 更新 也许在图中我只是应该指向java.util包?并且可能将Map类放在这个包中的图上? 解决方案 HashMap不应该出现在你的UML模型中。 HashMap ..
发布时间:2018-06-01 18:33:26 Java开发

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

设计电话簿的数据结构,可安全地使用 有效地按名称搜索一个号码,并通过号码搜索一个名称。 详细信息: 在stackoverflow上找到的解决方案都是关于哈希表的,但是,我必须为此创建2个哈希表,这需要两倍的空间。 如何以时间和空间高效的,类型安全的方式仅使用一个数据结构来完成它? 解决方案 这种数据结构称为多索引容器。它们在大多数编程语言中并不常见,因为接口可能非常复杂 ..
发布时间:2018-06-01 18:32:42 其他开发

什么是编程中的哈希映射以及何处可以使用它

我经常听到人们在讨论散列和散列映射以及散列表。我想知道它们是什么以及哪些地方可以最好地使用它们。 首先,你应该读这篇 article 。 当你使用列表,你是寻找一个通常需要遍历整个列表的特殊项目。当你有大量的列表时,这是非常昂贵的。 散列表可以快得多,在最好的情况下,你只需要一次访问即可获得你正在寻找的物品。 How它工作吗?就像一本字典......当你在字典中寻找单词“hash ..
发布时间:2018-06-01 18:24:31 其他开发

HashMap put()和get()方法如何工作的内部机制(仅限基本逻辑)

当我们使用 put()在 HashMap 类中放置一个关键实例时,将“key”和一个Value实例声明为“value” code>方法, HashMap 类在内部是做什么的。当我们说 hashMap.get(key)? 编辑:我不想在这里找到细节,基本上试图理解更大的图像和 equals()和 hashcode() code> put()和 get()操作中的code方法。 解决方案 ..
发布时间:2018-06-01 15:27:41 Java开发

Java:一种“素数”数字或“两个幂”作为HashMap大小?

许多书籍和教程都指出,散列表的大小必须是在所有桶中均匀分配密钥的首要条件。但Java的 HashMap 总是使用2的幂。它不应该使用素数?有什么更好的,作为散列表大小的“主要”或“两个幂”?有效地掩盖了哈希码的最高位。因此,在这种情况下,低质量的哈希函数可能表现得尤其糟糕。 Java的 HashMap 通过不信任对象的 hashCode()实现和对其结果应用第二级哈希处理: 应用一个给 ..
发布时间:2018-06-01 15:23:26 Java开发

HashMap#hash(int)方法的解释

有人可以向我解释静态HashMap#hash(int)方法吗? 生成均匀分布的散列的理由是什么? / ** *对给定的hashCode应用一个补充散列函数, *可以抵御劣质散列函数。这是至关重要的 *,因为HashMap使用两个长度的哈希表,所以 *会碰到hashCodes的冲突,而这些hashCodes在低位中不会有 *的差异。注意:空键总是映射到散列0,因此索引为0. ..
发布时间:2018-06-01 15:21:42 Java开发

为什么HashMap要求初始容量是2的幂次?

//默认的初始容量 - 必须是一个两个幂。 static final int DEFAULT_INITIAL_CAPACITY = 16; 我的问题是为什么这项要求首先存在?我还看到,允许创建具有自定义容量的HashMap的构造函数将其转换为两个幂: int capacity = 1; while(容量容量 为什么容量必须是2的乘方? ..
发布时间:2018-06-01 15:19:45 Java开发

如何用两个键(Key-Pair,Value)创建一个HashMap?

我有一个整数的二维数组。我希望他们被放入一个HashMap。但我想从基于数组索引的HashMap中访问元素。例如: 对于A [2] [5], map.get(2,5),它返回与该键相关联的值。但是,我如何使用一对密钥创建一个hashMap?或者一般来说,我可以通过使用get(key1,key1,key2,...,keyN),Value)来获取多个键: Map ..
发布时间:2018-06-01 15:17:51 Java开发

JavaScript哈希映射如何实现?

我目前与OpenLayers一起工作,并有大量数据绘制到矢量图层中(大于100000个矢量)。 我现在试图把所有这些向量转换为JavaScript哈希映射来分析性能。我想知道哈希映射在JavaScript中是如何实现的,它是一个真正的哈希函数还是只是一个使用简单数据结构和搜索算法的包装函数? 解决方案 每个javascript对象都是一个简单的hashmap,它只接受字符串值作为ke ..
发布时间:2018-06-01 15:17:17 前端开发

可变的hashmap键是一种危险的做法吗?

使用可变对象作为Hashmap键是不好的做法吗?如果您尝试使用已修改足以更改其哈希码的密钥从Hashmap中检索值,会发生什么情况?例如,给定 class Key { int a; //可变字段 int b; //可变字段 public int hashcode() return foo(a,b); } 包含代码 HashMap ..
发布时间:2018-06-01 15:12:57 其他开发

Json用java hashmap

我有hashmap对象, Map testData = new HashMap(); testData.put(“test”,“test1”); 我可以使用json文件和Gson库转换这张地图。我知道如何使用jQuery getJSON获取数据。 我的问题是:如何显示键和值对? 解决方案 如何使用 gson 在服务器端,并在客户端使用jQuery的 ..
发布时间:2018-05-30 16:16:19 其他开发