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
Loading script...
codechachaCopyright ©2019 codechacha