IT 일기장

[Java] LinkedHashMap 사용법과 예제 본문

프로그래밍 언어/Java

[Java] LinkedHashMap 사용법과 예제

뽕슈 2024. 6. 25. 17:26
반응형

Excel POI로 엑셀 다운로드 개발하고 있을때 발생한 개념이였다.

여러 방법을 생각하기 위해 시행착오를 몇 번 겪었었는데

그 중에서 DB에서 Column들에 대한 Key값들을 순서대로 가져오고 싶었을때 이 개념을 찾아냈다.

 

LinkedHashMap 사용법은 간단하다. HashMap과 동일한 개념이다. HashMap 예제부터 살펴보면

 

HashMap<String, Object> map = new HashMap<String, Object>();

map.put("test1", 1);
map.put("test2", 2);
map.put("test3", 3);
map.put("test4", 4);
map.put("test5", 5);

for (Map.Entry<String, Object> result : map.entrySet()) {
    System.out.println(result.getKey() + " : " + result.getValue());
}

 

 

결과를 실행해보면 당연히 순서대로 1,2,3,4,5가 뜨겠지~ 했는데 뒤죽박죽 뜬다.

Hashing 한 값의 순서를 기준으로 정렬되어 나오느라 들어간 순서는 보장되지 않는다고 한다.

그래서 순서가 바뀐 것이고 그렇다고 매번 뒤죽박죽이 되진 않는다. 한번 정해진 순서는 그래도 계속 유지되는 듯 하다. 하지만 ReHash가 된다면 다시 달라지겠지..

 

아무튼 바로 LinkedHashMap을 적용해보자. 계속 실행해도 순서가 변하지 않는 것을 볼 수 있다.

 

LinkedHashMap<String, Object> map = new LinkedHashMap<String, Object>();

map.put("test1", 1);
map.put("test2", 2);
map.put("test3", 3);
map.put("test4", 4);
map.put("test5", 5);

for (Map.Entry<String, Object> result : map.entrySet()) {
    System.out.println(result.getKey() + " : " + result.getValue());
}

 

 

 

반응형
Comments