草庐IT

java - 为什么不允许外部接口(interface)为 HashMap 提供 hashCode/equals?

使用TreeMap提供自定义Comparator是微不足道的,从而覆盖添加到map的Comparable对象提供的语义。但是HashMap不能以这种方式控制;提供散列值和相等性检查的函数不能“旁加载”。我怀疑设计一个接口(interface)并将其改造为HashMap(或一个新类)会既简单又有用吗?像这样,除了更好的名字:interfaceHasharator{intalternativeHashCode(Tt);booleanalternativeEquals(Tt1,Tt2);}classHasharatorMap{HasharatorMap(Hasharatorhasharato

java - Hashmap.keySet()、foreach 和删除

我知道使用java的“foreach”从列表中删除通常是一个大禁忌,应该使用iterator.remove()。但是,如果我在HashMap的keySet()上循环,那么remove()是否安全?像这样:for(Stringkey:map.keySet()){Noden=map.get(key).optimize();if(n==null){map.remove(key);}else{map.put(key,n);}} 最佳答案 编辑:我没有注意到您并没有真正添加到map中——您只是在更改条目中的值。在这种情况下,pstanton的

java - 将自己的类设置为 java Hashmap 中的键

我有一个类,我想将其设置为HashMap中的键。我已经为该类实现了compareTo方法。但当我这样做时:map.put(newMyKey(dummyArguements),dummyValue);System.out.println(map.get(newMyKey(dummyArguements)));我得到空值。所以这意味着hashmap无法识别这两个键(对于get和put调用)是否相同。有人可以帮我吗? 最佳答案 您需要实现hashCode()和equals()。compareTo()对于已排序的map/set是额外需要的。

java - 使用 ArrayList 或 HashMap 以获得更好的速度

我需要对象A的“列表”或“map”...。该列表将从另一个ArrayList添加。当A的id参数等于时,对象A被认为与另一个相等。我的问题是我只想添加一个不存在于我的列表中的对象。我想知道两种实现方案之间的区别。使用ArrayList或HashMap1.ArrayList:for(Aa:source){if(!(ainArrayList))addToArrayList();}2.HashMapfor(Aa:source){hasmap.put(a.id,a)}添加大量对象(超过1000个对象或更大数量的对象)的速度会更快我的问题有更好的模式吗??? 最佳答案

java - 如何使用 HashMap 写入和读取文件?

这个问题在这里已经有了答案:HowtoreadandwriteaHashMaptoafile?(5个答案)关闭5年前。我有一个HashMap有两个字符串MapldapContent=newHashMap.现在我想保存Map在外部文件中使用Map稍后无需再次初始化...那么我该如何保存Map稍后再使用它?

Java HashMap get方法空指针异常

我的代码类似于以下内容:publicclassA{privateHashMapmyMap;publicA(){myMap=newHashMap();Stringmychars="asdfzxcvqwer";for(charc:mychars.toCharArray())myMap.put(c,true);}publicvoiddoo(Stringinput){StringBuilderoutput=newStringBuilder();for(charc:input.toCharArray()){if(myMap.get(c))output.append(c);}}//...//...

Java - 扩展 HashMap - 对象与泛型行为

我正在编写一个简单的基于HashMap的缓存,其工作方式如下:如果请求的键在缓存中,返回它的值。如果请求的key不,运行一个方法根据key生成value,存储两者都返回值。代码:importjava.util.HashMap;abstractclassCacheextendsHashMap{@OverridepublicVget(Objectkey){if(containsKey(key)){returnsuper.get(key);}else{Vval=getData(key);put((K)key,val);//thisisthelineI'mdiscussingbelowretu

java - 为什么 HashMap 继承了 AbstractMap 还要实现 Map?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Java.util.HashMap—whyHashMapextendsAbstractMapandimplementMap?在java中实现HashMap我们需要实现Map.然而,当我在java类中进行更多调试时,似乎....java定义了HashMap类如下。publicclassHashMapextendsAbstractMapimplementsMap,Cloneable,Serializable同时我看到publicabstractclassAbstractMap工具Map它还实现了接口(interf

Java 遍历带有 HashMap 的 ArrayList

我有一个包含四个答案的Hashmap。我有前2个问题。我是这样做的//Awnsersquestion1antwoorden1.put("HypertextPreprocessor",true);antwoorden1.put("HypertextPHPprocessor",false);antwoorden1.put("Hypertextprocessor",false);antwoorden1.put("PreprocessorPHP",false);//Awnsersquestion2antwoorden2.put("Modelviewconfig",false);antwoord

java - 如何从 Java 中的 HashMap 中选择一个随机键?

我正在使用大型ArrayList>,我会反复需要从随机HashMap中选择一个随机键(并用它做一些事情)。选择随机HashMap很简单,但我应该如何从这个HashMap中选择一个随机键?速度很重要(因为我需要这样做10000次并且HashMap很大),所以只需在[0,9999]中选择一个随机数k然后执行.next()在迭代器上k次,真的不是一个选项。同样,在每次随机选择时将HashMap转换为数组或ArrayList确实不是一种选择。请在回复之前阅读此内容。从技术上讲,我认为这应该是可能的,因为HashMap将其键存储在Entry[]中。在内部,从数组中随机选择很容易,但我不知道如何访