Java Comparable 인터페이스는 사용자 정의 클래스의 객체를 정렬하는 데 사용됩니다. 이 인터페이스는 java.lang 패키지에 있으며 CompareTo(Object)라는 메서드 하나만 포함합니다. 이는 단일 정렬 순서만 제공합니다. 즉, 단일 데이터 멤버만을 기준으로 요소를 정렬할 수 있습니다. 예를 들어, Rollno, 이름, 나이 등이 될 수 있습니다.
CompareTo(Object obj) 메서드
공개 int CompareTo(객체 obj): 현재 개체와 지정된 개체를 비교하는 데 사용됩니다. 그것은 반환
- 현재 개체가 지정된 개체보다 큰 경우 양의 정수입니다.
- 현재 개체가 지정된 개체보다 작은 경우 음의 정수입니다.
- 0(현재 개체가 지정된 개체와 같은 경우).
다음 요소를 정렬할 수 있습니다.
i d e의 완전한 형태
- 문자열 객체
- 래퍼 클래스 객체
- 사용자 정의 클래스 객체
컬렉션 클래스
컬렉션 클래스는 컬렉션 요소를 정렬하기 위한 정적 메서드를 제공합니다. 컬렉션 요소가 Set 또는 Map인 경우 TreeSet 또는 TreeMap을 사용할 수 있습니다. 그러나 List의 요소를 정렬할 수는 없습니다. Collections 클래스는 List 유형 요소의 요소를 정렬하는 메소드를 제공합니다.
List 요소를 정렬하기 위한 Collections 클래스의 방법
공개 무효 정렬(목록 목록): List의 요소를 정렬하는 데 사용됩니다. 목록 요소는 Comparable 유형이어야 합니다.
알리사 만요녹
참고: String 클래스와 Wrapper 클래스는 기본적으로 Comparable 인터페이스를 구현합니다. 따라서 문자열이나 래퍼 클래스의 개체를 목록, 세트 또는 맵에 저장하면 기본적으로 비교 가능합니다.
Java 비교 예
연령을 기준으로 목록 요소를 정렬하는 Comparable 인터페이스의 예를 살펴보겠습니다.
파일: Student.java
class Student implements Comparable{ int rollno; String name; int age; Student(int rollno,String name,int age){ this.rollno=rollno; this.name=name; this.age=age; } public int compareTo(Student st){ if(age==st.age) return 0; else if(age>st.age) return 1; else return -1; } }
파일: TestSort1.java
import java.util.*; public class TestSort1{ public static void main(String args[]){ ArrayList al=new ArrayList(); al.add(new Student(101,'Vijay',23)); al.add(new Student(106,'Ajay',27)); al.add(new Student(105,'Jai',21)); Collections.sort(al); for(Student st:al){ System.out.println(st.rollno+' '+st.name+' '+st.age); } } }
105 Jai 21 101 Vijay 23 106 Ajay 27
Java 비교 예: 역순
연령을 기준으로 목록 요소를 역순으로 정렬하는 Comparable 인터페이스의 동일한 예를 살펴보겠습니다.
인스턴스화된 자바
파일: Student.java
class Student implements Comparable{ int rollno; String name; int age; Student(int rollno,String name,int age){ this.rollno=rollno; this.name=name; this.age=age; } public int compareTo(Student st){ if(age==st.age) return 0; else if(age<st.age) return 1; else -1; } < pre> <p>File: TestSort2.java</p> <pre> import java.util.*; public class TestSort2{ public static void main(String args[]){ ArrayList al=new ArrayList(); al.add(new Student(101,'Vijay',23)); al.add(new Student(106,'Ajay',27)); al.add(new Student(105,'Jai',21)); Collections.sort(al); for(Student st:al){ System.out.println(st.rollno+' '+st.name+' '+st.age); } } } </pre> <pre> 106 Ajay 27 101 Vijay 23 105 Jai 21 </pre></st.age)>
106 Ajay 27 101 Vijay 23 105 Jai 21