logo

Java 비교 가능 인터페이스

Java Comparable 인터페이스는 사용자 정의 클래스의 객체를 정렬하는 데 사용됩니다. 이 인터페이스는 java.lang 패키지에 있으며 CompareTo(Object)라는 메서드 하나만 포함합니다. 이는 단일 정렬 순서만 제공합니다. 즉, 단일 데이터 멤버만을 기준으로 요소를 정렬할 수 있습니다. 예를 들어, Rollno, 이름, 나이 등이 될 수 있습니다.

CompareTo(Object obj) 메서드

공개 int CompareTo(객체 obj): 현재 개체와 지정된 개체를 비교하는 데 사용됩니다. 그것은 반환

  • 현재 개체가 지정된 개체보다 큰 경우 양의 정수입니다.
  • 현재 개체가 지정된 개체보다 작은 경우 음의 정수입니다.
  • 0(현재 개체가 지정된 개체와 같은 경우).

다음 요소를 정렬할 수 있습니다.

i d e의 완전한 형태
  1. 문자열 객체
  2. 래퍼 클래스 객체
  3. 사용자 정의 클래스 객체

컬렉션 클래스

컬렉션 클래스는 컬렉션 요소를 정렬하기 위한 정적 메서드를 제공합니다. 컬렉션 요소가 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,&apos;Vijay&apos;,23)); al.add(new Student(106,&apos;Ajay&apos;,27)); al.add(new Student(105,&apos;Jai&apos;,21)); Collections.sort(al); for(Student st:al){ System.out.println(st.rollno+&apos; &apos;+st.name+&apos; &apos;+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