草庐IT

java - 是否有接受各种数据类型值的字典?

我需要一个映射,其中的值是不同类型的,如整数、字符串等。Java的问题是这里的基元不是Object,这表明可能无法拥有混合字典。我想确认这一点。 最佳答案 听起来你只想要一个Map(或任何您的key类型)。原始值将被适本地装箱:Mapmap=newHashMap();map.put("int",20);map.put("long",100L);//etc请注意,为了检索值并将其拆箱,您必须提及特定的包装器类型://Explicitunboxingintx=(int)(Integer)map.get("int");//Implicit

java - 如何测试 Map 中的 boolean 值?

我是Java的新手,所以请放轻松。我有一个HashMap,其中包含如下所示的字符串键和boolean值。Mapstates=newHashMap();states.put("b_StorageAvailable",true);states.put("b_StorageWritable",true);我从函数返回的。一旦我在其他地方得到这个,我希望能够在其中一个上调用if语句来查看它是对还是错。if(states.get("b_StorageAvailable")){//Dothis}但是java一直告诉我,我需要它是一个boolean类型,而且它是一个Map类型。我怎样才能轻松做到这一

java - 是否有一个 Java map 实现返回最近的包含键

我正在寻找一个Map实现,它返回与请求的键关联的值,或者如果不存在则返回最接近的值,根据请求返回更高或更低的值(连同实际键,可能作为Map.Entry)。例如,如果Map包含以下字符串键/值对:alpha:AYE,beta:BEE,charlie:CEE,delta:DEE然后你要求“加拿大”的“下一个更高”你会得到查理:中东欧当然,如果您要求“charlie”的Nexthigher或Nextlower,您会得到charlie:CEE它应该使用比较器,这样如果它包含数字键1、2、3并且我为1.4请求Nexthigher,它会返回2键。 最佳答案

java - Java 世界中有可变键长的 Map 吗?

我需要一个Map,但是当我调用get(key,n)时,它不仅应该返回具有搜索键值的所有记录,而且还应该返回键的最后n个有效位与搜索相同的所有记录key(例如应用类似key&(1是否已经在J​​ava中实现了类似的东西? 最佳答案 不完全是,但你可以使用NavigableMap.subMap实现这一点。例如NavigableMapmap=intkeyBase=key&~((1subMap=map.subMap(keyBase,true,keyBase+(1如果要根据最低位而不是最高位进行搜索,则必须在添加和搜索之前反转位。这会将最低位

java - K 和 V 的 HashMap 默认类型

我通常会键入我的map声明,但在进行一些维护时发现了一个没有键入的声明。这让我开始思考(哦不!)。Map声明的默认类型是什么。请考虑以下事项:Mapmap=newHashMap();map.put("one","1st");map.put("two",newInteger(2));map.put("three","3rd");for(Map.Entryentry:map.entrySet()){System.out.println(entry.getKey()+"->"+entry.getValue());}此错误与Map.Entry上的不兼容类型有关。所以如果我输入声明:Mapmap

java - 想创建一个 map<String , Object> ,Object 可以是 String 也可以是 class Object

如何创建Map.在这个映射中,每次对象都是一个字符串。但是现在我想除此之外在对象中放一个类。这是混合字符串和类对象的好方法吗?如果是,当我遍历映射时,如何区分类和字符串? 最佳答案 Mapmap=newHashMap();...for(Map.Entryentry:map.entrySet()){if(entry.getValue()instanceofString){//Dosomethingwithentry.getKey()andentry.getValue()}elseif(entry.getValue()instanceo

java - TreeMap put() 静默删除其他条目?

我遇到了一些非常令人毛骨悚然的TreeMap行为,我在缩小一个小测试用例时遇到了一些麻烦,所以请耐心等待。我想从运行时提供的文件中将大量键值对读入Map中。我正在使用自定义键类。后来,当我去拉回条目时,我发现其中一个或多个丢失了。使用调试器和一些测试用例,我确定缺失的条目在读取阶段肯定会消失,但我不确定是什么原因造成的。基本上:Mapmap=newTreeMap();map.put(key1,value1);//...putanother~500entriesintothemap...assertTrue(map.containsKey(key1));//passesif(!map.c

java - Spring:将属性文件注入(inject) map

我在下面有一个属性文件:transition.s1=s2,s5transition.s2=s4,s1...................问题:如何将这些属性注入(inject)Map?你能举个例子吗? 最佳答案 如果是XML配置publicclassStateGraph{publicStateGraph(Mapa){...}booleangetStateTransition(){...}}由于属性实现了映射,您可以将其作为构造函数提供请注意Spring将完成所有therequiredgenerictypeconversionsIf

java - 根据 Java 中的值对 map 进行排序的最简单方法是什么?

我希望我的散列根据值按降序排序。我如何在Java中做到这一点? 最佳答案 AHashMap(及其遗留前身Hashtable)本质上是无序的。即使您对其进行排序,它也将保持无序状态。如果要维护插入顺序,请使用LinkedHashMap反而。如果你想对keys进行自动排序,而不考虑插入顺序,那么使用SortedMap相反。如果你想对Map进行排序在values上,那么您基本上需要将键/值对放在另一种可排序的数据结构中,例如List>,然后使用Collections#sort()对其进行排序在Compatator>的帮助下最后重新填充Li

java - 为什么Java中的Set数据结构内部使用Map?

我想知道为什么HashSet使用HashMap,TreeSet使用TreeMap,LinkedHashSet在内部使用LinkedHashMap?因为Set只是携带和存储键而不是值,所以使用额外的内存空间不是不经济吗?HashMap的Entry内部类如下classEntryimplementsMap.Entry{finalKkey;Vvalue;Entrynext;finalinthash;.......}对于Set我们真的不需要那个Vvalue变量,对吗?那么在内部使用map对象的好处和主要原因是什么? 最佳答案 更少的代码、更少