Java - 저장 순서가 유지되는 HashMap

By JS | Last updated: June 13, 2021

HashMap은 저장 순서를 보장하지 않는 Map입니다.

저장 순서가 유지되는 Map을 사용하고 싶다면 LinkedHashMap을 사용할 수 있습니다.

HashMap

다음은 HashMap의 저장 순서가 보장되지 않는 것을 보여주는 예제입니다.

index 0부터 9에 대한 key와 value를 Map에 저장하고 결과를 출력하여 저장 순서가 유지되는지 확인합니다.

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

public class HashMapInsertionOrder {

    public static void main(String[] args) {

        Map<String, Integer> map = new HashMap<>();
        for (int i = 0; i < 10; i++) {
            String key = "ID_" + i;
            Integer value = i;
            map.put(key, value);
        }

        map.forEach((key, value) -> {
            System.out.println("key: " + key + ", value: " + value);
        });

    }
}

Output 1:

key: ID_6, value: 6
key: ID_7, value: 7
key: ID_4, value: 4
key: ID_5, value: 5
key: ID_8, value: 8
key: ID_9, value: 9
key: ID_2, value: 2
key: ID_3, value: 3
key: ID_0, value: 0
key: ID_1, value: 1

LinkedHashMap

다음은 LinkedHashMap을 사용하는 예제입니다.

결과를 출력해보면 저장된 순서가 유지되는 것을 확인할 수 있습니다.

import java.util.LinkedHashMap;
import java.util.Map;

public class HashMapInsertionOrder2 {

    public static void main(String[] args) {

        Map<String, Integer> map = new LinkedHashMap<>();
        for (int i = 0; i < 10; i++) {
            String key = "ID_" + i;
            Integer value = i;
            map.put(key, value);
        }

        map.forEach((key, value) -> {
            System.out.println("key: " + key + ", value: " + value);
        });

    }
}

Output:

key: ID_0, value: 0
key: ID_1, value: 1
key: ID_2, value: 2
key: ID_3, value: 3
key: ID_4, value: 4
key: ID_5, value: 5
key: ID_6, value: 6
key: ID_7, value: 7
key: ID_8, value: 8
key: ID_9, value: 9

References

댓글을 보거나 쓰려면 이 버튼을 눌러주세요.
codechachaCopyright ©2019 codechacha