用Java打印HashMap

我有一个HashMap

private HashMap<TypeKey, TypeValue> example = new HashMap<TypeKey, TypeValue>();

现在,我想遍历所有值并打印它们。

我这样写:

for (TypeValue name : this.example.keySet()) {

System.out.println(name);

}

它似乎不起作用。

问题是什么?

编辑:另一个问题:这个集合是从零开始的吗?我的意思是,如果它具有1个键并且值将为0或1?

回答:

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。

以上是 用Java打印HashMap 的全部内容, 来源链接: utcz.com/qa/423205.html

回到顶部