Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java打印所有地图键和值_Java_Hashmap - Fatal编程技术网

Java打印所有地图键和值

Java打印所有地图键和值,java,hashmap,Java,Hashmap,快速提问,这可能是最简单的答案,但我需要打印我的HashMaps内容的文本表示 到目前为止,我的代码是: public void printAll() { Set< String> Names = customersDetails.keySet(); Collection< CustomerDetails> eachCustomersNames = customersDetails.values(); for (String eachName :

快速提问,这可能是最简单的答案,但我需要打印我的
HashMaps
内容的文本表示

到目前为止,我的代码是:

public void printAll() {
    Set< String> Names = customersDetails.keySet();
    Collection< CustomerDetails> eachCustomersNames = customersDetails.values();
    for (String eachName : Names) {
        System.out.println(eachName)
    }
    for (CustomerDetails eachCustomer : eachCustomersNames) {
        System.out.println(eachCustomer);
    }
}
public void printAll(){
SetNames=customersDetails.keySet();
集合eachCustomersNames=CustomerDetails.values();
for(字符串名称:名称){
System.out.println(每个名称)
}
用于(客户详细信息每个客户:每个客户){
System.out.println(每个客户);
}
}
但是这会产生一个键列表,然后是一个值列表,但是我需要每一行文本来读取如下内容

鲍勃[举例]


其中Bob是键,example是值。

如果使用Java 8,可以利用lambda语法和
.forEach()
如下:

customersDetails.forEach((k,v) -> {
    System.out.println(k + "[" + v + "]");
});

其中,
k
是您的键,
v
是绑定到键
k
的值,每个键只映射到一个值,因此您可以执行以下操作:

Set < String> Names = customersDetails.keySet();

for (String eachName: Names) {
    System.out.println(eachName + " [" +  customersDetails.get(eachName).toString() + "]")

}
SetNames=customersDetails.keySet();
for(字符串名称:名称){
System.out.println(eachName+“[”+customersDetails.get(eachName.toString()+“]))
}

如果您没有使用Java 8,只需打印每个键的键和值:

for (String eachName : Names) {
    System.out.println(eachName + " [" + customersDetails.get(eachName) + "]");
}

您可以这样打印地图:

Map<String, String> customersDetails = new HashMap<>();
for (Map.Entry<String, String> entry : customersDetails.entrySet()) {
    System.out.println(entry.getKey()  + '[' + entry.getValue() + ']');
}

如果你开始处理更复杂类型的地图,请考虑使用。在内部,它使用反射来构建对象及其字段的字符串。它也通过对象图递归


它可能效率不高,但对调试和打印操作有很大帮助。

您不需要迭代键/值来打印映射,因为
HashMap.toString()
方法已经非常有效地为您完成了这项工作(实际上,它是
AbstractMap.toString()
方法)

如果您的
CustomerDetails
类实现了
toString()
方法,那么您只需要执行以下操作:

System.out.println(customerDetails);

这将以您需要的格式打印地图。

customersDetails.toString()
?这要求您的
CustomerDetails
类实现了
toString()
。遵守Java命名约定<代码>名称应该是
名称
!谢谢迈克尔,这真是一次难得的享受,有些事情很简单,但你的大脑却认为它很难!
System.out.println(customerDetails);