草庐IT

java - 在 HashMap 中找到最接近的答案

我想在HashMap中搜索一个键并找到离该键最近的一个!HashMapmap=newHashMap();所以基本上我想搜索一个long,如果它不存在于map中,找到最接近该long值的匹配项!我该怎么做!?提前致谢 最佳答案 如果不遍历它的所有键,你就不能用HashMap来做到这一点。我假设这不是您想要的,所以这里有一种使用TreeMap的方法:TreeMapmap=newTreeMap();Longkey=42;Map.Entrylow=map.floorEntry(key);Map.Entryhigh=map.ceilingEn

java - 为什么在向 HashMap 中插入 50,000 个对象时会出现 OutOfMemoryError?

我试图将大约50,000个对象(因此有50,000个键)插入到java.util.HashMap中.但是,我不断收到OutOfMemory异常。(Segment是我自己的类-非常轻-一个String字段和3个int字段)。Exceptioninthread"main"java.lang.OutOfMemoryError:Javaheapspaceatjava.util.HashMap.resize(HashMap.java:508)atjava.util.HashMap.addEntry(HashMap.java:799)atjava.util.HashMap.put(HashMap.

java - 按照已设置的顺序迭代 HashMap

我按特定顺序设置了一个HashMap,但它以一个奇怪的顺序迭代!请考虑以下代码:HashMapmap=newHashMap();map.put("ID","1");map.put("Name","thename");map.put("Sort","thesort");map.put("Type","thetype");...for(Stringkey:map.keySet()){System.out.println(key+":"+map.get(key));}结果:Name:thenameSort:thesortType:thetypeID:1我需要迭代它才能放入条目。任何帮助将不胜

java - 如何将 HashMap 键转换为列表?

我有一个散列映射,我正在尝试将键转换为列表。这是代码:Listrecs=newArrayList();HashMapuniqueRecs=newHashMap();for(ARecordrecords:recs){if(!uniqueRecs.containsKey(records.getId())){uniqueRecs.put(records.getId(),records);}}当我尝试做的时候ListfinalRecs=newArrayList(uniqueRecs.keySet());错误:TheconstructorArrayList(Set)isundefined".如何

Java 硬编码开关与 HashMap

一些消息类能够根据标签号返回标签名称由于这个类被多次实例化,我有点不愿意为每个实例创建一个HashMap:publicclassMessage{privateHashMaptagMap;publicMessage(){this.tagMap=newHashMap();this.tagMap.put(1,"tag1Name");this.tagMap.put(2,"tag2Name");this.tagMap.put(3,"tag3Name");}publicStringgetTagName(inttagNumber){returnthis.tagMap.get(tagNumber);}

java - 为什么 Java HashMap 的最大容量是 1<<30 而不是 1<<31?

为什么JavaHashMap的最大容量是131-1?最大容量初始化为staticfinalintMAXIMUM_CAPACITY=1 最佳答案 Java使用有符号整数,这意味着第一位用于存储数字的符号(正/负)。一个四字节整数有32位,其中数字部分由于符号位而只能跨越31位。这将数字的范围限制为2^31-1(由于包含0)到-(2^31)。 关于java-为什么JavaHashMap的最大容量是1 https://stackoverflow.com/questions/216

java - 将 HashMap 转换为二维数组

将HashMap转换为二维数组的最简单方法是什么? 最佳答案 HashMapmap=newHashMap();Object[][]arr=newObject[map.size()][2];Setentries=map.entrySet();IteratorentriesIterator=entries.iterator();inti=0;while(entriesIterator.hasNext()){Map.Entrymapping=(Map.Entry)entriesIterator.next();arr[i][0]=mappi

Java:基于正则表达式搜索 HashMap 键?

我正在使用HashMap构建同义词库来存储同义词。我正在尝试基于正则表达式搜索单词:该方法必须将字符串作为参数并返回结果数组。这是我的第一次尝试:publicArrayListsearchDefinition(Stringregex){ArrayListresults=newArrayList();Patternp=Pattern.compile(regex);Setkeys=thesaurus.keySet();Iteratorite=keys.iterator();while(ite.hasNext()){Stringcandidate=ite.next();Matcherm=p.

java - HashMap内部使用LinkedList

publicVget(Objectkey){if(key==null)returngetForNullKey();inthash=hash(key.hashCode());for(Entrye=table[indexFor(hash,table.length)];e!=null;e=e.next){Objectk;if(e.hash==hash&&((k=e.key)==key||key.equals(k)))returne.value;}returnnull;}我所知道的是,如果你想从HashMap中获取一个对象,首先它会根据哈希码/哈希值搜索哈希桶,然后遍历LinkedList在那

java - HashMap 的 String 键在多长时被认为是不好的做法?

我尝试一直关注良好的性能和干净的代码。我很难理解使用包含150个字符的键的HashMap是否明智。HashMapkey的长度是否有不成文的规定?使用150个字符的字符串键是否被认为是不好的做法?它会影响性能吗?多长? 最佳答案 不是真的,150个字符的字符串对于计算hashCode来说相对微不足道。话虽如此,在这种情况下,我建议您进行测试!创建一个例程来填充HashMap,例如,在此处插入一个代表您的使用场景的大小随机值,其中5个字符串作为键。测量需要多长时间。然后对15个字符的键执行相同的操作,并查看其缩放比例。此外,Java中的