Tag: hashmap

用于比较数据集的任何Java集合

我有2个月的2个数据集,包括学生姓名和分数。 我需要提供每个学生的2月分数和他/她的成绩分数变化百分比。 我可以用Java集合做到这一点吗? 样本数据集: name Jan_score Feb_score John 40 80 Mary 61 81 Jim 52 82 Liz – 84 Tim 94 – 输出应该是这样的 (姓名:John,Feb_score:80,变化百分比:100) (姓名:Mary,Feb_score:81,变化百分比:32.76) (姓名:Jim,Feb_score:82,变化百分比:57.69) (姓名:Liz,Feb_score:84,变化百分比:N / A) (姓名:Tim,Feb_score: – ,变化百分比:N / A)

如何在Java中修改对象时迭代对象?

可能重复: Java:在迭代集合时高效等效删除 在迭代它时从java中的集合中删除项目 我正在尝试遍历HashMap : Map group0 = new HashMap(); …并提取group0每个元素。 这是我的方法: // iterate through all Members in group 0 that have not been assigned yet for (Map.Entry entry : group0.entrySet()) { // determine where to assign ‘entry’ iEntryGroup = hasBeenAccusedByGroup(entry.getKey()); if (iEntryGroup == 1) { assign(entry.getKey(), entry.getValue(), 2); } else { assign(entry.getKey(), entry.getValue(), 1); […]

HashMap:以随机顺序迭代键值对

我有一个HashMap,我想在每次获得迭代器时以不同的随机顺序迭代它们的键值对。 从概念上讲,我想在调用迭代器之前“洗牌”地图(或者如果你想要,“洗牌”迭代器)。 我有两种选择: 1)使用LinkedHashMap的方法并在内部保留条目列表,将其随地移动并在调用迭代器时返回该视图。 2)取map.entrySet(),构造一个ArrayList并在其上使用shuffle()。 虽然这两种方法看起来很像我,但我期待非常大的HashMaps,所以我真的很关心细节和内部,因为我真的不能浪费内存或计算。

为什么HashMap.put比较哈希和测试相等?

我用Java分析HashMap源代码并得到关于put方法的问题。 下面是JDK1.6中的put方法: public V put(K key, V value) { if (key == null) return putForNullKey(value); int hash = hash(key.hashCode()); int i = indexFor(hash, table.length); for (Entry e = table[i]; e != null; e = e.next) { Object k; if (e.hash == hash && ((k = e.key) == key || key.equals(k))) { V oldValue = e.value; […]

HashMap中的NULL键的Hashcode

我刚刚读到了Java中HashMap和HashTable类之间的区别。 在那里,我发现前者允许空键以及后来不具有相同权限的区别。 就HashMap的工作而言,我知道,它在key上调用hashcode方法来查找要放置该键值对的存储区。 这里有我的问题:如何计算空值的哈希码或者是否存在空键哈希码的默认值(如果是,请指定值)?

如何从Java Hashmap中加总值

我需要一些帮助,我自己学习如何处理Java中的地图今天我试图从Hashmap获得值的总和,但现在我卡住了。 这是我想要求和的地图值。 HashMap map = new HashMap(); map.put(“First Val”, (float) 33.0); map.put(“Second Val”, (float) 24.0); 另外一个问题,如果我在地图中有10或20个值,如何将所有这些值相加,我是否需要制作“for”? 关心并感谢您的帮助。

如何获取压缩文件(通过索引)并重新创建原始文件? (JAVA)

问题的背景 我一直在开发一些代码,首先关注的是读取字符串并创建文件。 其次,将字符串拆分为数组。 然后获取数组中每个单词的索引,最后删除重复项并将其打印到不同的文件。 我目前已经为此创建了代码,这是一个链接https://pastebin.com/gqWH0x0 (也有一个菜单系统),但它相当长,所以我没有在这个问题中实现它。 压缩方法通过哈希映射完成,获取数组的索引并将它们映射到相关的单词。 这是一个例子: 原文:“海海见海看见” 输出:见[2,4,5],海[0,1,3], 题 下一阶段是将输出恢复到原始状态。 我目前相对较新的java,所以我不知道所需的技术。 代码应该能够获取输出文件(如上所示)并将其放回原始文件中。 我目前的想法是你只需要重写这个hashmap(如下)。 这样想我会不正确? 我以为我应该首先检查堆栈溢出! Map<String, Set> seaMap = new HashMap(); //new hashmap for (int seaInt = 0; seaInt < sealist.length; seaInt++) { if (seaMap.keySet().contains(sealist[seaInt])) { Set index = seaMap.get(sealist[seaInt]); index.add(seaInt); } else { Set index = new HashSet(); index.add(seaInt); seaMap.put(sealist[seaInt], index); } […]

从JSON获取数据

我正试图从这个JSON字符串中获取值,但我很难实现这一点。 {“DebugLogId”:”1750550″,”RequestId”:”17505503″,”Result”: {“Code”:””,”DebugLogId”:”1750550″,”Message”:””}, “Suggestions”:[ {“Ranking”:”1″,”Score”:”60″,”Title”:”This is a test message 1″}, {“Ranking”:”2″,”Score”:”60″,”Title”:”This is a test message 2″} ]} 在“建议”中访问数据最简单的方法是什么? 我正在使用GSON模块。 理想情况下,我想将它全部放在HashMap中。 感谢您的任何帮助和/或建议! 谢谢你的帮助!

Java HashMap如何为“get”操作执行常量时间查找O(1)?

我理解HashMap如何工作的基础知识 – hm.put(obj)根据obj.hashCode值找到放置对象的正确存储桶。 然后在该桶内如果另一个对象.equals(obj)然后替换它,如果没有将它添加到桶中。 但我不清楚HashMap.put和HashMap.get如何可以是常数时间O(1)。 根据我的理解,桶的数量应该基于哈希码,因此将100个对象放入哈希映射将(大致)创建100个桶(我知道有时会在哈希码中发生冲突,所以它可能少于100但不是经常)。 因此,随着添加到散列映射的对象数量的增加,桶的数量也增加 – 并且因为冲突很少,所以这并不意味着桶的数量几乎与添加的对象数量线性增长,在这种情况下是HashMap。 put / HashMap.get将是O(n),因为它必须在找到正确的桶之前搜索每个桶。 我错过了什么?

使用与HashSet对应的固定Key创建HashMap。 出发点

我的目标是创建一个以String作为键的hashmap,并将条目值作为字符串的HashSet。 OUTPUT 这就是输出现在的样子: Hudson+(surname)=[Q2720681], Hudson,+Quebec=[Q141445], Hudson+(given+name)=[Q5928530], Hudson,+Colorado=[Q2272323], Hudson,+Illinois=[Q2672022], Hudson,+Indiana=[Q2710584], Hudson,+Ontario=[Q5928505], Hudson,+Buenos+Aires+Province=[Q10298710], Hudson,+Florida=[Q768903]] 根据我的想法,它应该是这样的: [Hudson+(surname)=[Q2720681,Q141445,Q5928530,Q2272323,Q2672022]] 目的是在Wikidata中存储特定名称,然后将与其相关的所有Q值消除歧义,例如: 这是“布什”的页面。 我希望布什成为关键,然后对于所有不同的出发点, Bush可能与维基数据的终端页面相关联的所有不同方式,我想存储相应的“Q值”,或者是唯一的阿尔法 – 数字标识符。 我实际上在做的是尝试从维基百科歧义消除不同的名称,值,然后在wikidata中查找与该值相关联的唯一字母数字标识符。 例如, Bush我们有: George HW Bush George W. Bush Jeb Bush Bush family Bush (surname) 因此,Q值为: 乔治HW布什 (Q23505) 乔治W.布什 (Q207) 杰布·布什 (Q221997) 布什家族 (Q2743830) 布什 (Q1484464) 我的想法是数据结构应该按照以下方式解释 关键: Bush 入围集: Q23505, Q207, Q221997, Q2743830, Q1484464 […]