값이나 키를 기준으로 Java에서 HashMap을 정렬하려면 어떻게 해야 합니까?
Dec 03, 2024 am 09:14 AMJava에서 HashMap 정렬
Java에서는 액세스를 최적화하는 내부 구조를 유지하므로 HashMap을 직접 정렬하는 것이 불가능합니다. 해시 코드를 기반으로 키-값 쌍으로 변환합니다. 그러나 HashMap 내의 값을 기준으로 정렬하는 기술이 있습니다.
값을 비교하여 정렬
한 가지 접근 방식은 HashMap 값을 목록으로 변환하고 정렬하는 것입니다. 원하는 비교를 기반으로 목록을 작성합니다. 이 방법을 사용하면 사용자 지정 비교기를 사용할 수 있으므로 유연한 정렬 기준이 가능합니다. 예를 들어 값이 Person 객체인 HashMap을 나이에 따라 정렬하려면:
Map<String, Person> people = new HashMap<>(); ... // Convert HashMap values to a list List<Person> peopleByAge = new ArrayList<>(people.values()); // Sort the list using a comparator Collections.sort(peopleByAge, Comparator.comparing(Person::getAge)); // Print sorted results for (Person p : peopleByAge) { System.out.println(p.getName() + "\t" + p.getAge()); }
TreeMap 사용
정렬 기준이 값에 특정하지 않은 경우 그러나 키가 삽입되는 순서대로 HashMap 대신 TreeMap을 사용할 수 있습니다. TreeMap은 자연스럽게 정렬된 키 컬렉션을 유지하므로 요소는 기본적으로 오름차순으로 검색됩니다. 이 솔루션을 구현하려면 위 코드 조각의 HashMap을 TreeMap으로 바꾸세요.
고려 사항
사용 사례에 따라 HashMap 값 정렬 또는 정렬 중에서 선택할 수 있습니다. TreeMap을 사용하는 것은 다를 수 있습니다. 값을 비교하여 정렬해야 하는 경우 첫 번째 접근 방식이 더 적합합니다. 키를 기준으로 오름차순으로 정렬하는 것으로 충분하다면 TreeMap이 더 간단하고 효율적인 옵션입니다.
위 내용은 값이나 키를 기준으로 Java에서 HashMap을 정렬하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











2025 년 상위 4 개의 JavaScript 프레임 워크 : React, Angular, Vue, Svelte

Java의 클래스로드 메커니즘은 다른 클래스 로더 및 대표 모델을 포함하여 어떻게 작동합니까?

고급 Java 프로젝트 관리, 구축 자동화 및 종속성 해상도에 Maven 또는 Gradle을 어떻게 사용합니까?

캐싱 및 게으른 하중과 같은 고급 기능을 사용하여 객체 관계 매핑에 JPA (Java Persistence API)를 어떻게 사용하려면 어떻게해야합니까?

카페인 또는 구아바 캐시와 같은 라이브러리를 사용하여 자바 애플리케이션에서 다단계 캐싱을 구현하려면 어떻게해야합니까?
