Java - HashMapを文字列に変換する

1. HashMap.toString() に文字列を変換

HashMap.toString() は HashMap のすべての要素を文字列に変換して返します。文字列には key=value 形式ですべての要素の情報が含まれます。

import java.util.HashMap;

public class Example {

    public static void main(String[] args) {

        HashMap<String, Integer> map = new HashMap<>();
        map.put("apple", 100);
        map.put("kiwi", 200);
        map.put("banana", 300);
        map.put("grape", 400);

        String str = map.toString();
        System.out.println(str);
    }
}

Output:

{banana=300, apple=100, kiwi=200, grape=400}

2. forステートメントでHashMapを文字列に変換する

繰り返しステートメントで HashMap を巡回しながら、key と value を文字列に変換できます。直接変換するコードを実装するので、好きなフォーマットの文字列に変換できます。

import java.util.HashMap;
import java.util.Map;

public class Example1 {

    public static void main(String[] args) {

        HashMap<String, Integer> map = new HashMap<>();
        map.put("apple", 100);
        map.put("kiwi", 200);
        map.put("banana", 300);
        map.put("grape", 400);

        String str = "{";
        int i = 0;
        for (Map.Entry entry : map.entrySet()) {
            str += entry.getKey() + "=" + entry.getValue();
            i++;
            if (i != map.size()) {
                str += ",";
            }
        }
        str += "}";

        System.out.println(str);
    }
}

Output:

{banana=300,apple=100,kiwi=200,grape=400}

3. Streamを使用してHashMapを文字列に変換する

Stream.map()collect() を使って HashMap の key-value 情報を文字列に変換できます。 Collectors.joining() は引数として区切り文字を渡すことができ、要素間に区切り文字が追加され、文字列に変換されます。

import java.util.HashMap;
import java.util.stream.Collectors;

public class Example2 {

    public static void main(String[] args) {

        HashMap<String, Integer> map = new HashMap<>();
        map.put("apple", 100);
        map.put("kiwi", 200);
        map.put("banana", 300);
        map.put("grape", 400);

        String str = map.entrySet().stream().map(e -> e.getKey() + "=" + e.getValue())
                .collect(Collectors.joining("|"));

        System.out.println(str);
    }
}

Output:

banana=300|apple=100|kiwi=200|grape=400
codechachaCopyright ©2019 codechacha