ㅇ.ㅇ
[Java Code] Map 정렬문제 본문
반응형
상황
회사코드에서 로컬 디렉토리에서 파일들의 이름을 하나씩 가져와서 새로 선언한 hashMap에 넣는 로직이 있었는데, 분명 디렉토리에서는 제대로 된 정렬로 가져오는데 put 할때는 뒤죽박죽으로 저장이 되었다.
원인
hashmap은 정렬이 안된다. 넣은 순서대로 저장되지않고 뒤죽박죽이다.
해결
정렬을 지키고 싶으면 linkedHashMap을 사용하면 된다.
linkedHashMap이란?
Map 인터페이스를 구현한 클래스 중 하나로, put을 통해 입력한 순서를 기억하는 자료구조이다. (LinkedHshMap에 저장되는 키와 값은 Map.Entry 클래스를 구현한 Node 클래스에 저장된다. Node 클래스에는 before, after 멤버가 있는데, LiknkedhashMap에 입력된 순서에 따라 연결리스트 구조를 형성한다. 전체적인 사용법은 hashMap과 동일하다.
둘의 성능차이가 있을까?
스택오버플로우에 관련 글에 따르면 LinkedhashMap이 더 성능이 좋다는 의견이 많았다. 이 부분에 대해서는 계속 찾아보기로 하자.
참고 : https://hbase.tistory.com/136
반응형
'Today I Learned' 카테고리의 다른 글
[Spring] 어디에서나 Spring 컨테이너 Bean 객체 가져오기 (0) | 2023.02.14 |
---|---|
[Query] select 1 from dual (0) | 2023.02.14 |
[Query] CLOB 데이터 유형 + distinct (0) | 2023.02.14 |
[Intellij] directory to package (0) | 2022.09.16 |
[Maven] Maven Repository에서 어떤게 stable 한 걸까? (0) | 2022.09.16 |