Map <String,String>,如何同时打印"键字符串"和"值字符串"

Tho*_*hor 11 java dictionary key

我是Java的新手,正在尝试学习地图的概念.

我想出了下面的代码.但是,我想同时打印出"key String"和"value String".

ProcessBuilder pb1 = new ProcessBuilder();
Map<String, String> mss1 = pb1.environment();
System.out.println(mss1.size());

for (String key: mss1.keySet()){
    System.out.println(key);
}
Run Code Online (Sandbox Code Playgroud)

我只能找到只打印"键字符串"的方法.

Ste*_*ase 25

有多种方法可以实现这一目标.这是三个.

    Map<String, String> map = new HashMap<String, String>();
    map.put("key1", "value1");
    map.put("key2", "value2");
    map.put("key3", "value3");

    System.out.println("using entrySet and toString");
    for (Entry<String, String> entry : map.entrySet()) {
        System.out.println(entry);
    }
    System.out.println();

    System.out.println("using entrySet and manual string creation");
    for (Entry<String, String> entry : map.entrySet()) {
        System.out.println(entry.getKey() + "=" + entry.getValue());
    }
    System.out.println();

    System.out.println("using keySet");
    for (String key : map.keySet()) {
        System.out.println(key + "=" + map.get(key));
    }
    System.out.println();
Run Code Online (Sandbox Code Playgroud)

产量

using entrySet and toString
key1=value1
key2=value2
key3=value3

using entrySet and manual string creation
key1=value1
key2=value2
key3=value3

using keySet
key1=value1
key2=value2
key3=value3
Run Code Online (Sandbox Code Playgroud)


bla*_*ide 5

在循环内部,您具有密钥,可用于从中检索值Map

for (String key: mss1.keySet()) {
    System.out.println(key + ": " + mss1.get(key));
}
Run Code Online (Sandbox Code Playgroud)


dmi*_*inn 5

final Map<String, String> mss1 = new ProcessBuilder().environment();
mss1.entrySet()
        .stream()
        //depending on how you want to join K and V use different delimiter
        .map(entry -> 
        String.join(":", entry.getKey(),entry.getValue()))
        .forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)