Notice
Recent Posts
Recent Comments
Link
투케이2K
370. (java/자바) [간단 소스] Map.ofEntries 방식을 사용해 HashMap 해쉬맵 전역 변수 데이터 추가 초기화 생성 방법 본문
Java
370. (java/자바) [간단 소스] Map.ofEntries 방식을 사용해 HashMap 해쉬맵 전역 변수 데이터 추가 초기화 생성 방법
투케이2K 2026. 6. 12. 19:01728x90
반응형
[개발 환경 설정]
개발 툴 : 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
반응형
'Java' 카테고리의 다른 글
Comments
