keySet()仅从哈希图中返回一组键,您应该迭代此键集,并使用这些键从哈希图中获取值。
在您的示例中,哈希映射键的类型为TypeKey
,但是您是TypeValue
在通用的for循环中指定的,因此无法对其进行编译。您应该将其更改为:
for (TypeKey name: example.keySet()){
String key = name.toString();
String value = example.get(name).toString();
System.out.println(key + " " + value);
}
Java8更新:
example.entrySet().forEach(entry->{
System.out.println(entry.getKey() + " " + entry.getValue());
});
如果您不需要打印键值而只需要哈希图值,则可以使用其他人的建议。
另一个问题:这个集合是零基数吗?我的意思是,如果它具有1个键并且值将为0或1?
从集合返回的集合keySet()
是Set。您不能使用索引从Set中获取值,因此这不是从零开始还是从一开始的问题。如果您的哈希图具有一个键,则返回的keySet()将在其中包含一个条目,其大小为1。
Map
的size()
方法的文档:“返回此映射中的键-值映射关系的数目。如果该映射包含多个Integer.MAX_VALUE
元素,则返回Integer.MAX_VALUE
。”