草庐IT

开散列

全部标签

49天精通Java,第25天,Java映射Map、弱散列映射WeakHashMap

目录一、Java映射Map二、HashMap常用方法三、TreeMap常用方法四、映射视图五、弱散列映射WeakHashMap大家好,我是哪吒。一、Java映射MapJava类库为映射提供了两个通用的实现:HashMap和TreeMap,这两个类都实现了Map接口。散列映射对键进行散列,数映射根据键的顺序将它们组织为一个搜索树。散列和比较函数只应用于键,值不做散列和比较处理。那么,应该选择散列映射还是散列树呢?HashMap还是TreeMap?如果不需要按照有序顺序访问键,最好选择散列映射HashMap。二、HashMap常用方法HashMap是Java中常用的键值对集合实现类之一。put(K

c++ - 散列 OLE 变体的推荐实现是什么?

OLE变体,如旧版本的VisualBasic所使用的和COM自动化中普遍使用的,可以存储许多不同的类型:基本类型,如整数和float,更复杂的类型,如字符串和数组,以及一直到IDispatch的实现和ByRef变体形式的指针。变体也是弱类型的:它们将值转换为另一种类型而不发出警告,具体取决于您应用的运算符以及传递给运算符的值的当前类型。例如,比较两个变体,一个包含整数1,另一个包含字符串"1",如果相等,将返回True。所以假设我在底层数据级别处理变体(例如C++中的VARIANT或Delphi中的TVarData-即不同可能值的大union),我应该如何一致地散列变体以使它们遵守正确

c++ - 散列指针作为 C++ STL 中 unordered_map 的键

我发布了一个类似的quetion关于在C++STL中使用指针作为map上的键。当用作键时,指针如何在unordered_maps中散列。更具体地说,如果我定义:std::unordered_mapfoo;默认的C++std::hash实现是否可以处理这些指针?使用安全吗?这是好的做法吗? 最佳答案 std::hash已定义,但其操作方式的细节取决于实现。使用它肯定是安全的,我认为这是一个很好的做法-只要它是您需要作为键的指针,而不是对象内容本身。 关于c++-散列指针作为C++STL中u

java - firefox缓存散列键生成算法bug

有abuginFirefox(即使在新的测试版和雷区版本中)由于在其缓存哈希中创建key的算法,它阻止了某些文件的缓存。Hereisalinktothesourcecodeofthefunction.我想确保我网站的所有文件都可以缓存。但是,我不明白为什么他们的哈希函数无法为不同的url创建唯一的键。我希望有人可以用伪代码或java描述这个mal函数。最好为开发人员创建一个实用程序来确保唯一的url,直到这个错误被修复。编辑:已经有一些非常有用的答案,但是,我需要更多的分步帮助来创建一个实用程序来检查这些缓存混淆。获得一些可以重现firefox正在创建的key的java代码会很棒。因此

c++ - C++11 是否为 std::type_info 提供散列函数?

我仍在为我的One-Of-A-TypeContainerProblem寻找一个好的解决方案--经过深思熟虑,我认为能够只使用像std::map这样的东西会很好.不幸的是,std::type_info没有定义operator,我认为它定义一个是不合理的。然而,为它定义一个散列函数似乎是合理的,因为你可以简单地使用std::type_info的单例地址。对象作为合理的“哈希”。因此,您可以输入std::type_info进入std::unordered_map作为关键。C++11有提供这样的哈希函数吗?将使用std::type_info的内存地址单例是一个糟糕的哈希策略?

c++ - C++ 中真正的编译时字符串散列

基本上,我需要一个真正的C++编译时字符串散列。我不关心技术细节,可以是模板、宏,任何东西。到目前为止我见过的所有其他哈希技术只能在编译时生成哈希表(如256CRC32哈希),而不是真正的哈希。换句话说,我需要这个printf("%d",SOMEHASH("string"));被编译为(在伪汇编器中)pushHASHVALUEpush"%d"callprintf即使在调试版本中,也没有对字符串进行运行时操作。我正在使用GCC4.2和VisualStudio2008,我需要解决方案适合这些编译器(所以没有C++0x)。 最佳答案 问题

【C++】哈希 Hash(闭散列、开散列介绍及其实现)

一、unordered系列关联式容器在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到O(logN),即最差情况下需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。最好的查询是,进行很少的比较次数就能够将元素找到。因此在C++11中,STL又提供了4个unordered系列的关联式容器,这四个容器与红黑树结构的关联式容器使用方式基本类似,只是其底层结构不同,下面只对unordered_map和unordered_set进行介绍,unordered_multimap和unordered_multiset的具体内容可查看文档介绍。unordered系列

spring-boot - Redis put() 语句中使用的键和散列键参数有什么区别?

我有一个使用Redis进行存储的JavaSpringBoot应用程序。我已经进行了大量的网络搜索,但找不到易于理解的文本来详细解释key参数与使用/选择什么值的后果Redisput(key,hashkey,object)语句中的hashkey参数。我正在使用Redis存储来存储特定于特定用户ID的短期session管理对象,并且保证该用户ID是唯一的。对象值是特定类对象的JSON编码字符串://Stringformattemplateforstoringobjectsofthisclass.publicstaticfinalStringSTORE_MULTI_SELECT_CHOICE

python - 基于值组合的安全散列 key

我在MongoDB中有大量记录/文档,我需要通过每个文档列表中的值组合来限制对项目的访问。想象一下安全的可能的单个值是[1,2,3]。记录可以是这些的任意组合,即:()(1,)(​​2,)(3,)(1,2)(1,3)(2,3)(1,2,3)有权访问[1]的用户只能看到包含()&(1)的记录有权访问[2]的用户只能看到包含()&(2)的记录有权访问[1,2]的用户只能看到具有(),(1),(2),(1,2)的记录只有可以访问[1,2,3]的用户才能看到所有记录现在在数据库的入口点,我知道用户的访问权限是什么,例如[1,2,3]。但我不能轻易地(尤其是索引)查看记录以检索用户有权访问的所有

python - 如何使用pymongo在mongodb数据库中插入散列密码

当我使用pymongo将我的散列密码插入我的MongoDB数据库时,它会在密码中创建一个新文档。在本文档中,它创建了一个名为“$binary”的key。{"_id":ObjectId("......"),"email":"example@gmail.com","password":{"$binary":"JDJiJDEyJEdwNWtlY3NTSllNR0FzaGRKKHVH0Ykh4TS5JZk00SFA5SWZ2cmpWMXpKelQ2Z2hyTjQzRkNuODMy","$type":"00"}我想像字符串一样存储我的散列密码。可能吗??如果不是,那么我怎样才能获得登录等的这个值