>Java >java지도 시간 >Java에서 여러 필드를 기준으로 개체 목록을 정렬하는 방법은 무엇입니까?

Java에서 여러 필드를 기준으로 개체 목록을 정렬하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-15 11:12:11847검색

How to Sort a List of Objects by Multiple Fields in Java?

Java에서 여러 필드로 객체 정렬

여러 필드로 데이터를 정렬하는 것은 프로그래밍에서 일반적인 작업입니다. 이 질문은 사람 개체 배열을 이름, 나이 순으로 알파벳순으로 정렬하는 방법을 탐구합니다.

다중 필드 정렬을 위해 Collections.sort 사용

이를 달성하려면, 제공된 Comparator를 기반으로 사용자 정의 정렬을 허용하는 Collections.sort 메서드를 활용할 수 있습니다. 비교기는 두 개체를 비교하는 방법을 결정하여 다중 필드 정렬 전략을 정의할 수 있게 해줍니다.

private static void order(List<Person> persons) {

    Collections.sort(persons, new Comparator() {

        public int compare(Object o1, Object o2) {

            String x1 = ((Person) o1).getName();
            String x2 = ((Person) o2).getName();
            int sComp = x1.compareTo(x2);

            if (sComp != 0) {
               return sComp;
            } 

            Integer x1 = ((Person) o1).getAge();
            Integer x2 = ((Person) o2).getAge();
            return x1.compareTo(x2);
    }});
}

이 코드에서 비교 메서드는 먼저 두 사람 개체의 이름(x1 및 x2)을 비교합니다. ). 서로 다른 경우 사전순으로 더 큰 문자열을 나타내는 String.compareTo 메서드의 결과를 반환합니다. 이름이 동일하면 정수 개체에 대해 CompareTo 메서드를 사용하여 연령(x1 및 x2)을 비교합니다.

이 Comparator 전략을 사용하면 Collections.sort 메서드가 사람 개체 목록을 알파벳순으로 정렬합니다. 이름순으로, 이름이 같으면 연령순으로 추가 정렬됩니다.

위 내용은 Java에서 여러 필드를 기준으로 개체 목록을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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