hashmap相关内容

反序列化后哈希图变慢 - 为什么?

我有一个相当大的 Hashmap (~250MB).创建它大约需要 50-55 秒,所以我决定将它序列化并保存到一个文件中.现在从文件中读取大约需要 16-17 秒. 唯一的问题是这种方式的查找速度似乎较慢.我一直以为hashmap是从文件中读入内存的,所以性能应该和我自己创建hashmap的情况是一样的吧?这是我用来将哈希图读入文件的代码: 文件 file = new File("oma ..
发布时间:2022-01-08 14:30:27 Java开发

ConcurrentHashMap的Segment和HashMap的bucket在理论上有什么区别?

我了解在HashMap中,条目(Key,Value)是根据hash(Key.hashCode)放在桶中的-->表示桶位置的索引.如果条目已经放置在该位置,则会创建一个链表,并且新条目(如果它具有不同的键 --> 通过 equals() 方法)放置在链表的开头. 我能否将这个概念与 ConcurrentHashMap 的概念相关联,但不是 Buckets,而是有各个线程在其上具有锁的 Segm ..
发布时间:2022-01-08 14:30:21 Java开发

如何通过 JNI 将 HashMap 从 Java 发送到 C

我有一个 Object 有一个 HashMap 字段.当 Object 传递给 C 时,如何访问该字段? Object的Class有以下字段: 私有字符串你好;私有映射params = new HashMap(); 解决方案 你的问题的答案真的归结为为什么你想将 Map 传递给C 而不是在 Java 中迭代您的 Map 并将内容传递给 ..
发布时间:2022-01-08 14:30:14 Java开发

HashSet 的迭代成本还取决于支持映射的容量?

来自 HashSet 的 JavaDocs: 此类为基本操作提供恒定时间性能(添加、删除、包含和大小),假设散列函数分散桶中的元素正确.迭代这个集合所需时间与 HashSet 实例大小的总和成正比(元素的数量)加上支持 HashMap 的“容量"实例(桶的数量).因此,不要设置是非常重要的初始容量太高(或负载系数太低)如果迭代性能很重要 为什么迭代所花费的时间与总和(集合中的元素数量+ ..
发布时间:2022-01-08 14:29:58 Java开发

Java 8 中字符串键的替代散列是什么?

Java 8 正在为字符串键提供替代散列,以在遇到大量键散列代码冲突时提高性能.谁能解释一下那是什么以及它是如何工作的? 解决方案 来自 core-lib-devs@openjkd的="noreferrer">这封电子邮件: 引入了新的接口 Hashable32. Hashable32提供了一个方法hash32() String 实现 Hashable32 和 hash32() ..
发布时间:2022-01-08 14:29:52 Java开发

是否可以在 Android 上创建一个 Parcelable 的 HashMap?

我正在尝试将 HashMap 扩展为 Parcelable,并且我获得了要编译的语法,但是,在运行时它会引发异常并返回一个空指针,试图解组数据. 发送者必须强制转换为 (Parcelable) 来解决歧义,但是接收者抱怨说应该是 Parcelable 但找到了 HashMap. 有人成功了吗?我的语法错了吗?有没有更好的解决方案? 以下是代码: HomeActivity.j ..
发布时间:2022-01-08 14:29:45 移动开发

Eclipse生成的hashCode函数好用吗?

Eclipse 源菜单有一个“生成 hashCode/equals 方法",它可以生成如下所示的函数. 字符串名称;@覆盖公共 int hashCode(){最终 int 素数 = 31;整数结果 = 1;结果 = 素数 * 结果 + ((name == null) ? 0 : name.hashCode());返回结果;}@覆盖公共布尔等于(对象 obj){如果(这 == 对象)返回真;如果( ..
发布时间:2022-01-08 14:29:36 Java开发

在 HashMap 中增加一个整数

我必须返回对象然后放入一个新对象吗?或者我可以直接增加吗? 整数 temp = myMap.get(key);温度++;myMap.put(key, temp); 没有办法做到这一点(这不起作用): myMap.get(key)++; 解决方案 我必须返回对象然后放入一个新对象吗? 只要你使用 Integer 包装类就可以,因为它是不可变的.您可以改用可变包装类,甚至是具有 i ..
发布时间:2022-01-08 14:29:30 Java开发

Unordered_Map 查找时间

C++ 库中的内置映射和集合(包括 unordered_map 和 multimap)要求 find 函数(用于查找特定元素)使用迭代器来遍历元素.C++ 参考站点声称使用这些数据结构查找元素平均需要恒定时间,就像常规哈希表一样.但是迭代器在找到元素之前是否必须遍历整个列表,平均花费 O(n) 时间? 解决方案 你的说法不正确: map、set、multimap 和 multiset ..
发布时间:2022-01-08 14:29:22 其他开发

使用自定义类在 hashmap 上调用 containsKey

我有一个 Color 类,我将其放入 hashmap 中.我想在 hashmap 上调用 containsKey 以确保对象是否已经存在于 hashmap 中 颜色类 公共类颜色{公共字符串名称;颜色(字符串名称){this.name = name;}//名称的getter setter} 哈希映射 HashMap>m = new HashMap ..
发布时间:2022-01-08 14:29:04 Java开发

CUDA - 实现设备哈希映射?

有没有人有在 CUDA 设备上实现哈希映射的经验?具体来说,我想知道如何在设备上分配内存并将结果复制回主机,或者是否有任何有用的库可以促进这项任务. 似乎我需要先验知道哈希映射的最大大小才能分配设备内存.我之前的所有 CUDA 尝试都使用了数组和 memcpys,因此相当简单. 感谢您对此问题的任何见解.谢谢. 解决方案 Jason Sanders 和 Edward Kandr ..
发布时间:2022-01-08 14:28:46 其他开发

Java 8 流:迭代列表映射

我有以下对象和地图: MyObject字符串名称;长期优先;富吧;映射>另一个HashMap; 我想将地图转换为另一个地图.结果映射的键是输入映射的键.结果映射的值是我的对象的属性“名称",按优先级排序. ordering 和提取名称不是问题,但我无法将其放入结果图中.我用旧的 Java 7 方式来做,但如果可以使用流式 API,那就太好了. 地图 ..
发布时间:2022-01-08 14:28:40 Java开发

如何将 Hashmap 存储到 android,以便在使用共享首选项重新启动应用程序时重用它?

我想将 hashmap 存储到我的 android 应用程序中,当重新启动时,它会显示最后保存的 hashmap 值. HashMapHtKpi=new HashMap(); 是我的哈希图,其中动态存储了 44 个值.这很好用!!!现在,我想存储它以备将来使用(应用程序重新启动或重用). 解决方案 您可以将其序列化为 json 并将结果字符串存储在首选项中.然后当应用程序重新启动时,从 ..
发布时间:2022-01-08 14:28:33 Java开发

HashMap 允许重复吗?

我对 HashMap 有疑问,我们都知道 HashMap 允许一个空键和值对,我的问题是 如果我这样写, m.put(null,null);m.put(null,a); 它会抛出(错误或异常)还是会覆盖该值或返回的值是什么?? 解决方案 Hashmap type 如果hashmap key是同一个key,则覆盖那个key map.put("1","1111");map.put( ..
发布时间:2022-01-08 14:28:21 Java开发

HashMap<字符串,整数>搜索密钥的一部分?

我目前正在使用 HashMap ,其中填充了 String 类型的键,例如 5 个字符长.如何搜索 4 个字符或更少字符的特定键,该键是其他键的一部分和开头,并将所有命中作为 的集合? 解决方案 迭代是您唯一的选择,除非您创建自定义数据结构: for (Entrye : map.entrySet()) {if (e.getKey ..
发布时间:2022-01-08 14:28:15 Java开发

如何在Java中以相反的顺序迭代hashmap

我尝试了几个小时,但没有找到任何最佳方法来实现以相反顺序迭代 hashmap,这就是我拥有的 hashmap. 映射>map = new HashMap>();for(整数键:map.keySet()){列表值 = map.get(key);列表>security = new LinkedList ..
发布时间:2022-01-08 14:28:07 Java开发

Scala GroupBy保留插入顺序?

Lists、Maps等中的groupBy方法,在函数之后生成一个Map. 有没有办法使用 groupBy 生成保留插入顺序的 Map(例如 LinkedHashMap)? 我正在使用 for 循环手动插入,但我想知道其中一个有用的已定义函数是否可以帮助我. 提前致谢. 解决方案 groupBy 定义在 TraversableLike 产生一个 immutable.Map, ..
发布时间:2022-01-08 14:27:58 其他开发

java hashmap键迭代

有没有办法遍历 java Hashmap 并打印出作为 Hashmap 一部分的每个键的所有值? 解决方案 With for-each 循环,使用 Map.keySet() 用于迭代键,Map.values() 用于迭代值和 Map.entrySet() 用于迭代键/值对. 请注意,所有这些都是用于获取它们的地图的直接视图,因此您对三者中的任何一个或地图本身所做的任何修改都会反映到所 ..
发布时间:2022-01-08 14:27:50 Java开发