Tag: 哈希表

二叉search树在哈希表上的优势

二叉search树比哈希表有什么优势? 哈希表可以在Theta(1)时间内查找任何元素,添加一个元素也是一样容易的……但我不确定相反的优势。

在C ++中使用map和hash_map

我有一个hash_map和C + +的map的问题。 我明白, map是在STL,但hash_map不是一个标准。 两者有什么区别?

将重复键放入HashMap时会发生什么?

如果我多次将相同的密钥传递给HashMap的put方法,原始值会发生什么变化? 而且,如果价值重复呢? 我没有find任何文件。 情况1:覆盖键的值 Map mymap = new HashMap(); mymap.put("1","one"); mymap.put("1","not one"); mymap.put("1","surely not one"); System.out.println(mymap.get("1")); 我们surely not one 。 情况2:重复值 Map mymap = new HashMap(); mymap.put("1","one"); mymap.put("1","not one"); mymap.put("1","surely not one"); // The following line was added: mymap.put("1","one"); System.out.println(mymap.get("1")); 我们得到one 。 但是其他的价值呢? 我正在向一名学生讲授基础知识,并被问到这一点。 Map像最后一个值被引用的桶(但在内存中)?

我如何将JavaScript对象编码为JSON?

有没有一种好的方法来编码为JSON的JavaScript对象? 我有一个键值对的列表…其中名称来自checkbox,根据是否选中该框,该值为true或false: var values = {}; $('#checks :checkbox').each(function() { values[this.name]=this.checked; }); 我想传递这些值到一个JSON对象,所以存储到一个cookie来呈现一个表(列会根据用户检查)添加。 有谁知道一个解决scheme?

为什么LinkedHashSet <E>扩展HashSet <e>并实现Set <E>

今天打开LinkedHashSet源代码,发现一些有趣的事情: public class LinkedHashSet<E> extends HashSet<E> implements Set<E>, Cloneable, java.io.Serializable { 问题是:为什么当HashSet已经是Set时,他们同时需要“extends HashSet”和“implements Set”?

哈希表的时间复杂度

我对散列表的时间复杂性感到困惑,许多文章指出它们是“平摊的O(1)”而不是真正的O(1)这在实际应用中意味着什么。 在哈希表中的操作的平均时间复杂度是多less,在实际实现中不是理论上的,为什么这些操作不是真的O(1)?

Python字典是一个哈希表的例子吗?

Python中的基本数据结构之一是字典,它允许用户logging“键”来查找任何types的“值”。 这是作为一个哈希表内部实现吗? 如果不是,那是什么?

什么是实现__hash __()的正确和好方法?

什么是实现__hash__()的正确和好方法? 我正在讨论的函数返回一个哈希码,然后用来插入哈希表又名字典的对象。 作为__hash__()返回一个整数,并用于“binning”对象到哈希表中我假设返回的整数值应该为公共数据均匀分布(以最小化冲突)。 获得这种价值的好习惯是什么? 碰撞是一个问题吗? 在我的情况下,我有一个小class,充当一个容器类,持有一些整数,一些浮点数和一个string。

HashTables如何处理冲突?

我听说在我的学位课程中,如果新的密钥条目与另一个条目相冲突,则HashTable会将新条目放入“下一个可用”存储桶中。 如果在使用碰撞键调用一个背面时发生碰撞, HashTable将如何返回正确的值? 我假设Keys是Stringtypes,并且hashCode()返回通过说Java产生的默认值。 如果我实现自己的散列函数并将其用作查找表(即HashMap或Dictionary )的一部分,那么处理冲突的策略是什么? 我甚至看到有关素数的笔记! Googlesearch中的信息不太清楚。

如何在JavaScript中执行关联数组/散列

我想要使​​用JavaScript计算/存储一些统计信息,C#中的等效代码在下面(我需要的function是 – 键值对,string/整型键值对,通过键操作值等),任何想法如何在JavaScript中实现相同的function? 看起来像没有内置的字典或散列表? Dictionary<string, int> statistics; statistics["Foo"] = 10; statistics["Goo"] = statistics["Goo"] + 1; statistics.Add("Zoo", 1);