Tag: hashmap

当值的hashset为Empty时,删除hashmap中的键

我有一个将字符串键映射到hashsets值的hashmap,我想在hashmaps的hashset值为空时从hashmap中删除一个键。 我无法接近这个。 这是我尝试过的但是我很困惑: for(Map.Entry<String, HashSet> entr : stringIDMap.entrySet()) { String key = entr.getKey(); if (stringIDMap.get(key).isEmpty()) { stringIDMap.remove(key); continue; } //few print statements… }

如何从iterator()获取正确顺序的元素

这是我的代码,用于将数据存储到HashMap中并使用迭代器显示数据 public static void main(String args[]) { HashMap hm = new HashMap(); hm.put(“aaa”, “111”); hm.put(“bbb”, “222”); hm.put(“ccc”, “333”); hm.put(“ddd”, “444”); hm.put(“eee”, “555”); hm.put(“fff”, “666”); Iterator iterator = hm.keySet().iterator(); while (iterator.hasNext()) { String key = (String) iterator.next(); String val = hm.get(key); System.out.println(key + ” ” + val); } } 但它没有按照我存储的顺序显示。 有人可以告诉我哪里出错了? 我怎样才能获得订单中的元素?

在Java中,通过key.length()对哈希映射进行排序

我有这样的hashmap: HashMap map = new HashMap(); map.put(“java”,4); map.put(“go”,2); map.put(“objective-c”,11); map.put(“c#”,2); 现在我想按照它的密钥长度对这个映射进行排序,如果两个密钥长度相等(例如go和c#都是长度2),那么按照alphba顺序排序。 所以我期望得到的结果是这样的: 打印结果:objective-c,11 java,4 c#,2 go,2 这是我自己的玩具,但它根本不起作用…… HashMap map = new HashMap(); map.put(“java”,4); map.put(“go”,2); map.put(“objective-c”,11); map.put(“c#”,2); Map treeMap = new TreeMap( new Comparator() { @Override public int compare(String s1, String s2) { return s1.length().compareTo(s2.length()); } } ); 实际上’compareTo’方法显示为红色(无法编译)….请有人帮我一些代码示例…我有点困惑如何使用比较器类来自定义比较对象…

当您知道HashSet中最大可能的元素数时,应使用什么负载因子

当我真正知道HashSet中最大可能的元素数时,我应该使用什么负载因子? 我听说建议使用0.75的默认负载系数,因为它在速度和空间之间提供了良好的性能折衷。 它是否正确 ? 但是,更大的HashSet也会在创建和更多空间上花费更多时间。 我正在使用HashSet,以便从整数列表中删除重复的整数。

Java同步HashMap中的size(),put(),remove(),get()是否为primefaces?

我将Java Map声明为 Map map = Collections.synchronizedMap(new HashMap()); 处理并发问题,并在地图上同步其上的所有操作。 但是,我读到当操作是primefaces操作时,synchronizedMap上不需要synchronizedMap 。 我检查了Java API,HashMap的文档似乎没有提到哪些是primefaces的,所以我不确定是哪些。 我正在同步以下对地图的调用: map.size() map.put() map.remove() map.get() 但如果有些是primefaces的,那么似乎并不需要同步。 哪个是primefaces的?

当在JVM5和JVM6中运行相同的程序时,HashMap中的项目顺序会有所不同

我有一个应用程序,它显示行中的对象集合,一个对象=一行。 对象存储在HashMap中。 行的顺序不会影响应用程序的function(这就是使用HashMap而不是可排序集合的原因)。 但是我注意到,使用两个不同版本的Java虚拟机运行时,相同的应用程序运行方式不同。 该应用程序使用JDK 5编译,可以使用Java 5或Java 6运行时运行,没有任何function差异。 有问题的对象会覆盖java.lang.Object#hashCode()并且显然已经注意遵循Java API中指定的契约。 这可以通过以下事实得到certificate:它们在应用程序的每次运行中(在同一Java运行时中)始终以相同的顺序出现。 出于好奇,为什么Java运行时的选择会影响订单?

Java弱哈希映射 – 需要根据值的弱点而不是键来删除条目

因此,Java WeakHashMap允许创建一个映射,如果其键变弱,则删除其条目。 但是,当地图中的值变弱时,如何创建一个其条目被删除的Map? 我想使用地图的原因是全局哈希表,它根据ID来跟踪对象。 ID —> Object Address Key —> Value (其中ID是文本字符串) 我希望在对象地址变弱时删除键值对,而不是指向它们的字符串。 有人对此有何看法?

如何在Java中拆分HashMap

我想知道是否可以将HashMap拆分成更小的子地图。 在我的例子中,我有一个100个元素的HashMap,我想从原始的HashMap创建2个(或更多)小HashMaps,第一个包含从0到49的条目,第二个包含从50到99的条目。 Map bigMap = new HashMap (); //should contains entries from 0 to 49 of ‘bigMap’ Map smallMap1 = new HashMap (); //should contains entries from 50 to 99 of ‘bigMap’ Map smallMap2 = new HashMap (); 有什么建议么? 非常感谢!

如何制作带有两个索引的Map?

我在java中有一个这样的Map: Map<String index1, Map> map = new HashMap(); 我想通过使用index1和index2作为查找来在地图中获取我的Object 。

无法从Sun文档中了解Hash表的Poisson部分

我试图了解如何在Java中实现HashMap。 我决定尝试理解该课程的每一行(代码和评论),显然我很快就遇到了阻力。 以下代码片段来自HashMap类,并讨论泊松分布: 理想情况下,在随机hashCodes下,频率为 箱中的节点遵循泊松分布 ( http://en.wikipedia.org/wiki/Poisson_distribution )带有 默认大小调整的平均参数约为0.5 阈值为0.75,虽然因为有很大的差异 调整粒度。 忽略方差,预期 列表大小k的出现是(exp(-0.5)* pow(0.5,k)/ 阶乘(K))。 第一个值是:* 0:0.60653066 1:0.30326533 2:0.07581633 3:0.01263606 4:0.00157952 5:0.00015795 6:0.00001316 7:0.00000094 8:0.00000006 更多:不到千万分之一 我是数学中的普通人,必须先了解泊松分布是什么。 感谢简单的video向我解释。 现在,即使了解了如何使用Poisson计算概率,我也无法理解上面描述的内容。 有人可以用更简单的语言解释一下,如果可能,请举例说明吗? 这将使我的任务更有趣。 提前致谢