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);