투케이2K

370. (java/자바) [간단 소스] Map.ofEntries 방식을 사용해 HashMap 해쉬맵 전역 변수 데이터 추가 초기화 생성 방법 본문

Java

370. (java/자바) [간단 소스] Map.ofEntries 방식을 사용해 HashMap 해쉬맵 전역 변수 데이터 추가 초기화 생성 방법

투케이2K 2026. 6. 12. 19:01
728x90
반응형

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java

 

[소스 코드]

 

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Java / Kotlin


- 개발 툴 : AndroidStudio


- 구분 : 간단 소스 / HashMap / Map.ofEntries


- 사전) 👉 HashMap 간략 설명 : 

  >> HashMap 이란 Key–Value(키-값) 형태로 데이터를 저장하는 자료구조 객체입니다.

  >> HashMap 에서 데이터 저장 시 map.put("name", "twok"); 해당 형식으로 저장합니다

    - key : name
    - value : twok

  >> HashMap 특징 : 

    - Key 로 빠르게 조회
    - Key 는 중복 불가 (같은 Key 로 저장 시 덮어쓰기 저장 됨)
    - Value 는 중복 가능
    - null 허용
    - 순서 보장 안됨 


- 사전) 👉 HashMap 과 다른 Map 차이 간략 설명 : 

  >> HashMap : 빠름, 순서 없음

  >> LinkedHashMap : 입력 순서 유지

  >> TreeMap : 정렬됨

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------

------------------------------------------------------
🟦 전역 변수 HashMap 생성 방법 : 👉 Java 9+ 이상 사용 가능 : Map.ofEntries
------------------------------------------------------

Map<String, String> map = new HashMap<>(Map.ofEntries(
        Map.entry("a","1"),
        Map.entry("b","2"),
        Map.entry("c","3"),
        Map.entry("d","4"),
        Map.entry("e","5"),
        Map.entry("f","6"),
        Map.entry("g","7"),
        Map.entry("h","8"),
        Map.entry("i","9"),
        Map.entry("j","10"),
        Map.entry("k","11")
));



------------------------------------------------------
🟦 전역 변수 HashMap 생성 방법 : 👉 Java 8 이하 사용 가능 : 초기화 블록
------------------------------------------------------

Map<String, String> map = new HashMap<>();
{
    map.put("a", "1");
    map.put("b", "2");
}



------------------------------------------------------
🟦 이벤트 동작에 의한 HashMap 데이터 조작 방법
------------------------------------------------------

appExplanationButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        S_Log._W_(ACTIVITY_NAME + " : appExplanationButton : 테스트 동작 수행", null);
        try {

            if (map != null && map.size()>0){

                // {a=1, b=2, c=3, d=4, e=5, f=6, g=7, h=8, i=9, j=10, k=11}
                S_Log.w("KWON_TWON", "초기 map 정보 확인 : " + map.toString());

                // -----------------------------------
                // [동적으로 데이터 추가 수행]
                // -----------------------------------
                map.put("l", "12");
                map.put("m", "13");
                map.putIfAbsent("n", "26");  // 없으면 추가됨
                map.putIfAbsent("n", "30");  // 이미 있으면 안 바뀜

                // {a=1, b=2, c=3, d=4, e=5, f=6, g=7, h=8, i=9, j=10, k=11, l=12, m=13, n=26}
                S_Log.w("KWON_TWON", "데이터 추가 map 정보 확인 : " + map.toString());


                // -----------------------------------
                // [동적으로 데이터 변경 수행]
                // -----------------------------------
                map.put("a", "0");

                // {a=0, b=2, c=3, d=4, e=5, f=6, g=7, h=8, i=9, j=10, k=11, l=12, m=13, n=26}
                S_Log.w("KWON_TWON", "데이터 변경 map 정보 확인 : " + map.toString());


                // -----------------------------------
                // [동적으로 데이터 삭제 수행]
                // -----------------------------------
                map.remove("n");

                // {a=0, b=2, c=3, d=4, e=5, f=6, g=7, h=8, i=9, j=10, k=11, l=12, m=13}
                S_Log.w("KWON_TWON", "데이터 삭제 map 정보 확인 : " + map.toString());
                
            }
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }
});



------------------------------------------------------
🟥 전역 변수에서 HashMap 선언 및 사용 시 주의점
------------------------------------------------------

1. 메모리 한계

  >> 데이터 많아지면 Heap 사용 증가

  >> OOM 가능 (아웃 오브 메모리)


2. 성능 

  >> HashMap은 평균 O(1)

  >> 많아져도 성능 크게 문제 없음

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

▶️ [HashMap 해쉬맵 - HashMap사용해 key, value 형태로 데이터 저장,수정,삭제,조회 실시]

https://kkh0977.tistory.com/42

https://blog.naver.com/kkh0977/222190291065?trackingCode=blog_bloghome_searchlist


▶️ [hashmap 해쉬맵 key 리스트 , value 리스트 확인 - keySet , Collection , Set , Iterator]

https://kkh0977.tistory.com/1030

https://blog.naver.com/kkh0977/222442068496?trackingCode=blog_bloghome_searchlist


▶️ [Java] 완주하지 못한 선수 - hashmap 해쉬맵 사용

https://kkh0977.tistory.com/2170

https://blog.naver.com/kkh0977/222810898143?trackingCode=blog_bloghome_searchlist

// --------------------------------------------------------------------------------------
 
728x90
반응형
Comments