logo

예제가 포함된 Java의 비교 가능한 인터페이스

Comparable 인터페이스는 동일한 클래스의 객체를 해당 클래스의 인스턴스와 비교하는 데 사용되며 사용자 정의 클래스의 객체에 대한 데이터 순서를 제공합니다. 클래스는 다음을 구현해야 합니다. java.lang.비교 가능 인스턴스를 비교하기 위한 인터페이스에서는 해당 클래스 개체의 매개 변수를 사용하는 CompareTo 메서드를 제공합니다. 이 기사에서는 다양한 비교 매개변수에 따라 다양한 데이터 유형의 쌍 배열을 정렬하는 방법을 살펴보겠습니다.

비교 가능한 인터페이스 사용

  • 이 방법에서는 Comparable 인터페이스를 구현하겠습니다. java.lang 쌍 클래스의 패키지입니다.
  • Comparable 인터페이스에는 다음 메소드가 포함되어 있습니다. 비교 대상 요소의 순서를 결정합니다.
  • 재정의 비교 대상 pair 클래스의 메서드입니다.
  • 쌍 배열을 만들고 배열을 채웁니다.
  • 사용 배열.정렬 () 함수를 사용하여 배열을 정렬합니다.

실시예 1

문자열과 정수 유형의 두 필드로 구성된 쌍 배열이 제공됩니다. 사전순으로 오름차순으로 배열을 정렬해야 하며 두 문자열이 동일한 경우 정수 값을 기준으로 정렬해야 합니다.



샘플 I/O:

Input: { {'abc', 3}, {'a', 4}, {'bc', 5}, {'a', 2} } Output: { {'a', 2}, {'a', 4}, {'abc', 3}, {'bc', 5} } Input: { {'efg', 1}, {'gfg', 1}, {'cba', 1}, {'zaa', 1} } Output: { {'cba', 1}, {'efg', 1}, {'gfg', 1}, {'zaa', 1} }>

자바




NBSP

자바는 같음





import> java.io.*;> import> java.util.*;> class> Pair>implements> Comparable {> >String x;> >int> y;> >public> Pair(String x,>int> y)> >{> >this>.x = x;> >this>.y = y;> >}> >public> String toString()> >{> >return> '('> + x +>','> + y +>')'>;> >}> >@Override> public> int> compareTo(Pair a)> >{> >// if the string are not equal> >if> (>this>.x.compareTo(a.x) !=>0>) {> >return> this>.x.compareTo(a.x);> >}> >else> {> >// we compare int values> >// if the strings are equal> >return> this>.y - a.y;> >}> >}> }> public> class> GFG {> >public> static> void> main(String[] args)> >{> >int> n =>4>;> >Pair arr[] =>new> Pair[n];> >arr[>0>] =>new> Pair(>'abc'>,>3>);> >arr[>1>] =>new> Pair(>'a'>,>4>);> >arr[>2>] =>new> Pair(>'bc'>,>5>);> >arr[>3>] =>new> Pair(>'a'>,>2>);> >// Sorting the array> >Arrays.sort(arr);> >// printing the> >// Pair array> >print(arr);> >}> >public> static> void> print(Pair[] arr)> >{> >for> (>int> i =>0>; i System.out.println(arr[i]); } } }>

>

배열 목록을 정렬하다
>

산출:

 Before Sorting: (abc, 3); (a, 4); (bc, 5); (a, 2); After Sorting: (a,2) (a,4) (abc,3) (bc,5)>

메모: 두 문자열이 동일하면 값을 기준으로 비교가 수행됩니다.

실시예 2

이름과 성을 가진 두 개의 문자열로 구성된 쌍 배열이 제공됩니다. 이름의 사전순으로 오름차순으로 배열을 정렬해야 하며 두 문자열이 동일한 경우 성을 기준으로 정렬해야 합니다.

알파벳 숫자

샘플 I/O:

Input: { {'raj', 'kashup'}, {'rahul', 'singh'}, {'reshmi', 'dubey'}, {'rahul', 'jetli'} } Output: { {'rahul', 'jetli'}, {'rahul', 'singh'}, {'raj', 'kashup'}, {'reshmi', 'dubey'} } Input: { {'abc', 'last'}, {'pklz', 'yelp'}, {'rpng', 'note'}, {'ppza', 'xyz'} } Output: { {'abc', 'last'}, {'pklz', 'yelp'}, {'ppza', 'xyz'}, {'rpng', 'note'} }>

자바




스피커가 뭐야?
import> java.io.*;> import> java.util.*;> class> Pair>implements> Comparable {> >String firstName;> >String lastName;> >public> Pair(String x, String y)> >{> >this>.firstName = x;> >this>.lastName = y;> >}> >public> String toString()> >{> >return> '( '> + firstName +>' , '> + lastName +>' )'>;> >}> >@Override> public> int> compareTo(Pair a)> >{> >// if the string are not equal> >if> (>this>.firstName.compareTo(a.firstName) !=>0>) {> >return> this>.firstName.compareTo(a.firstName);> >}> >else> {> >// we compare lastName if firstNames are equal> >return> this>.lastName.compareTo(a.lastName);> >}> >}> }> public> class> GFG {> >public> static> void> main(String[] args)> >{> >int> n =>4>;> >Pair arr[] =>new> Pair[n];> >arr[>0>] =>new> Pair(>'raj'>,>'kashup'>);> >arr[>1>] =>new> Pair(>'rahul'>,>'singh'>);> >arr[>2>] =>new> Pair(>'reshmi'>,>'dubey'>);> >arr[>3>] =>new> Pair(>'rahul'>,>'jetli'>);> >// Sorting the array> >Arrays.sort(arr);> >// printing the> >// Pair array> >print(arr);> >}> >public> static> void> print(Pair[] arr)> >{> >for> (>int> i =>0>; i System.out.println(arr[i]); } } }>

>

>

산출:

 Before Sorting: ( raj , kashup ) ( rahul , singh ) ( reshmi , dubey ) ( rahul , jetli ) After Sorting: ( rahul , jetli ) ( rahul , singh ) ( raj , kashup ) ( reshmi , dubey )>

이 기사에서는 java를 사용하여 다양한 데이터 유형으로 사용자 정의 쌍을 정렬했습니다. 유사한 .