Java の同等のインターフェイスと例
Comparable インターフェイスは、同じクラスのオブジェクトとそのクラスのインスタンスを比較するために使用され、ユーザー定義クラスのオブジェクトのデータの順序を提供します。クラスは以下を実装する必要があります。 java.lang.Comparable インターフェイスを使用してそのインスタンスを比較するには、そのクラスのオブジェクトのパラメーターを受け取る CompareTo メソッドを提供します。この記事では、さまざまな比較パラメータに基づいてさまざまなデータ型のペアの配列を並べ替える方法を説明します。
同等のインターフェイスの使用
- このメソッドでは、Comparable インターフェイスを次から実装します。 java.lang ペアクラスのパッケージ。
- Comparable インターフェイスにはメソッドが含まれています 比較する 要素の順序を決定します。
- オーバーライド 比較する ペアクラスのメソッド。
- ペアの配列を作成し、配列に値を設定します。
- 使用 配列.並べ替え () 関数は配列をソートします。
例1
文字列型と整数型の 2 つのフィールドで構成されるペアの配列が与えられたとします。配列を辞書編集上の昇順に並べ替える必要があり、2 つの文字列が同じ場合は、整数値に基づいて並べ替えます。
サンプル 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} } ジャワ
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 つの文字列が同じ場合、値に基づいて比較が行われます。
例 2
姓名を含む 2 つの文字列で構成されるペアの配列が与えられたとします。配列を名の辞書順に並べ替える必要があります。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 を使用して、さまざまなデータ型を持つユーザー定義のペアを並べ替えました。 匹敵します 。