본문 바로가기
Programming_Language/Java

[Java] value 담을 때 Map 뭐써? Map(HashMap,LinkedHashMap) 차이점

by Cocopop 2024. 2. 14.
반응형




오늘은 Map 이란 무엇이고
종류 중 (HashMap, LinkedHashMap)
차이점을 알아보겠습니다.


1. Map :
- 키(key)와 값(value)의 쌍으로 이우러진 데이터 구조에요.
- List와 똑같이 인터페이스 입니다.

list랑 array와 다른차이점이 있는데요.

첫 째. Map은 key를 이용하여 값을 검색합니다.
하지만 list와 array는 index로 값을 검색하죠.

둘 째. list와 array는 index로 통해 순서있게 저장을 합니다. 하지만 Map은 key만 찾기에 순서있게 저장 되진 않아요..



1.1. 사용 용도 :
똑같이 데이터를 담는 거지만!
사용 용도는 조금 달라요.

Map : 데이터를 검색하거나 저장할 때!
- 키를 통해 빠르게 검색할 수 있기 때문에 DB 검색 엔진 등에서 많이 사용.

List : 데이터를 순서대로 저장하거나 정렬할 때!
- 인덱스를 이용하여 쉽게 접근할 수 있기 때문에 배열이나 리스트 등에서 사용.

Array : 동일한 데이터 타입의 요소들을 연속적으로 저장할 때!
- 메모리를 효율적으로 사용할 수 있기 때문에 배열이나 리스트 등에서 사용.



2. HashMap, LinkedHashMap
그럼 Map에도 array와 List 처럼 구현체가 있겠네요?
그쵸!

대표적인 구현체는 HashMap입니다.

spring에서 DB데이터를 받는 Map중에
HashMap 많이 사용하지 않나요??

하지만
.
.

HashMap은 순서 있게 저장이 안되는 단점을 가지고 있죠. 그 점을 보안한게 LinkedHashMap 입니다.

HashMap :
- 빠른 검색 및 추가, 삭제, 수정.
- 메모리 효율성
- 순서를 유지 못함.

LinkedHashMap :
- 순서 유지 가능.
- 저장된 순서를 유지하기 때문에 검색 성능 향상
- 메모리 사용량 증가(메모리 효율성 저하)
- 추가,삭제,수정 느림.

이러한 부분들이 각각 있어서 무조건 이거다라고
말씀드릴 순 없지만

DTO 경우 순서대로 불러오는 Map 형식이
좀 더 중요힐 것 같아 저는 LinkedHashMap을 주로 사용합니다.

하지만, 데이터 양이 많은 상태라면 속도를 중요시 해야하기에 HashMap으로 사용하는게 맞긴 할 것 같아요. ㅎㅎ

여러분들은 어떻게 사용하시나요? ㅎㅎ

이상 HashMap과 LinkedHashMap 차이점
글이었습니다.




























300x250