Java의 Arrays.sort() 메소드는 사용자 정의 비교기로 배열을 어떻게 정렬합니까?
Java의 Arrays.sort() 메서드는 사용자 정의 비교기에 따라 배열을 어떻게 정렬합니까?
Java에서 Arrays.sort() 메서드는 배열을 정렬하는 데 매우 유용한 메서드입니다. 기본적으로 이 방법은 오름차순으로 정렬됩니다. 그러나 때로는 우리가 정의한 규칙에 따라 배열을 정렬해야 하는 경우도 있습니다. 이때 사용자 정의 비교기(Comparator)를 사용해야 합니다.
사용자 정의 비교기는 특정 요구에 따라 비교 규칙을 정의할 수 있는 Comparator 인터페이스를 구현하는 클래스입니다. 사용자 정의 비교기는 기본 유형과 사용자 정의 유형을 포함하여 모든 유형의 개체를 정렬할 수 있습니다.
다음으로 사용자 정의 비교기를 사용하여 Java에서 Arrays.sort() 메서드를 정렬하는 방법을 소개하고 설명할 샘플 코드를 제공하겠습니다.
- 사용자 정의 비교기를 정의하는 방법은 무엇입니까?
사용자 정의 비교기를 정의하려면 Comparator 인터페이스를 구현하고 비교 메서드를 재정의하기만 하면 됩니다. 비교 메서드에는 두 개의 매개변수가 있습니다. 비교 규칙에는 다음과 같은 상황이 있습니다.
- obj1 == obj2, 0을 반환합니다. obj1 > obj2, 양의 정수를 반환합니다.
- 키 코드는 다음과 같습니다.
public class MyComparator implements Comparator<T> { @Override public int compare(T o1, T o2) { // 你的自定义比较规则 return 0; } }
- 키 코드는 다음과 같습니다.
public static <T> void sort(T[] a, Comparator<? super T> c)
샘플 코드
이제 구체적인 예를 살펴보겠습니다. 이 클래스에는 이름과 나이라는 두 개의 멤버 변수가 포함되어 있습니다. 이제 Student 배열을 가장 작은 연령부터 가장 큰 연령 순으로 정렬하려면 사용자 지정 비교기를 정의해야 합니다. 샘플 코드는 다음과 같습니다.- 위 코드에서는 Comparator
인터페이스를 구현하고 비교 메서드를 재정의하는 StudentComparator 클래스를 정의합니다. 비교 방법에서는 연령에 대한 비교에 중점을 둡니다. o1의 나이가 o2의 나이보다 작으면 음의 정수가 반환됩니다. o1의 나이가 o2의 나이와 같으면 0이 반환됩니다. o1의 나이가 o2의 나이보다 크면 양의 정수가 반환됩니다.
public class StudentComparator implements Comparator<Student> { @Override public int compare(Student o1, Student o2) { return o1.age - o2.age; } }
public class Main { public static void main(String[] args) { Student[] students = new Student[3]; students[0] = new Student("Tom", 20); students[1] = new Student("Jack", 18); students[2] = new Student("Lucy", 22); Arrays.sort(students, new StudentComparator()); for (Student student : students) { System.out.println(student.name + " " + student.age); } } }출력 결과는 다음과 같습니다.
Jack 18 Tom 20 Lucy 22결과에서 볼 수 있듯이 우리가 정의한 규칙에 따라 Student 배열은 연령별로 작은 것부터 큰 것까지 정렬됩니다.
Summary
Arrays.sort() 메서드는 모든 유형의 배열을 정렬할 수 있는 매우 유용한 메서드입니다. 자신이 정의한 규칙에 따라 배열을 정렬해야 하는 경우 Comparator 인터페이스를 구현하고 비교 메서드를 재정의하기만 하면 됩니다. 구체적인 구현 과정은 위에서 언급한 바와 같으며, 모든 분들께 도움이 되기를 바랍니다.위 내용은 Java의 Arrays.sort() 메소드는 사용자 정의 비교기로 배열을 어떻게 정렬합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

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

WebStorm Mac 버전
유용한 JavaScript 개발 도구

Dreamweaver Mac版
시각적 웹 개발 도구

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