>Java >java지도 시간 >값이나 키를 기준으로 Java에서 HashMap을 정렬하려면 어떻게 해야 합니까?

값이나 키를 기준으로 Java에서 HashMap을 정렬하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-03 09:14:10452검색

How Can I Sort a HashMap in Java Based on Its Values or Keys?

Java에서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.