ツールバーの
13692 ワード
ComparentとComparatorは、Java内のオブジェクトをソートできます.
Comparable
実施方法
ソートするオブジェクトにCompareableインタフェースを実装した後、比較メソッドを上書きすることで実装します.
CompareTo()メソッドの作成方法
現在のオブジェクト<パラメータ内のオブジェクト:負のループバック
現在のオブジェクト==パラメータを超えたオブジェクト:0
現在のオブジェクトに切り替える>パラメータのオブジェクトに切り替える:戻る
負数または0の場合、オブジェクトの位置は変更されません.正の値の場合、2つのオブジェクトの位置は変更されます.
使用方法
Arrays.sort(array)
Collections.sort(list)
Arrays.sort()
アレイのソート:
TimSortは、バイト[]、char[]、double[]、int[]、Object[]、T[]などのオブジェクトアレイで使用されます.
≪オブジェクト・アレイ|Object Array|oem_src≫:新しく定義されたクラスのアレイ権限アレイは、2つのPivot QuickSortを使用します.
Primitive Array:基本データ型の配列 Collections.sort()
List Collectionソートの場合:
Ex)ArrayList、LinkedList、Vector等*内部Array.sort() を使用
Compareableインタフェースの使用Comparator
実施方法
Comparatorインタフェースを実装した後,Comparator()メソッドを超えたMyComparatorクラスを記述する.
比較()メソッドの作成方法
1番目のパラメータに移動するオブジェクト<2番目のパラメータに移動するオブジェクト:負の戻り値
1番目のパラメータのオブジェクトに移動=2番目のパラメータのオブジェクトに移動:0
1番目のパラメータのオブジェクトに移動>2番目のパラメータのオブジェクトに移動:戻る
負数または0の場合はオブジェクトの位置が保持され、正の値の場合は2つのオブジェクトの位置が変更されます.
すなわち、Integer.compare(x,y)(昇順ソート)と同じ概念である.
return (x < y) ? -1 : ((x == y) ? 0 : 1);
降順ソートでは、2つのパラメータの位置が変更されます.
Integer.compare(y,x)(降順ソート)
使用方法
Arrays.sort(array, myComparator)
Collections.sort(list, myComparator)
Arrays.sort(), Collections.sort()メソッドは、2番目のパラメータとしてComparatorインタフェースを受信することができる.
優先キュージェネレータの2番目のパラメータはComparatorインタフェースです.
PriorityQueue(int initialCapacity, Comparator comparator)
指定したComparatorのソート方法に従って優先度を割り当てます.
Comparatorインタフェースの使用Arrays.sort()
Comparable
ソート時に基本的に適用されるソート基準を定義する方法のインタフェース.
package : java.lang.Comparable
Javaが提供するソート可能クラスは、Compareableインタフェースを実装し、ソート時に対応するソートを行います.(Interger, Double
:昇順、String
:プリソート)
実施方法
ソートするオブジェクトにCompareableインタフェースを実装した後、比較メソッドを上書きすることで実装します.
CompareTo()メソッドの作成方法
現在のオブジェクト<パラメータ内のオブジェクト:負のループバック
現在のオブジェクト==パラメータを超えたオブジェクト:0
現在のオブジェクトに切り替える>パラメータのオブジェクトに切り替える:戻る
負数または0の場合、オブジェクトの位置は変更されません.正の値の場合、2つのオブジェクトの位置は変更されます.
使用方法
Arrays.sort(array)
Collections.sort(list)
🎈 Arrays.sort(array) vs Collections.sort(list)
アレイのソート:
TimSortは、バイト[]、char[]、double[]、int[]、Object[]、T[]などのオブジェクトアレイで使用されます.
≪オブジェクト・アレイ|Object Array|oem_src≫:新しく定義されたクラスのアレイ権限アレイは、2つのPivot QuickSortを使用します.
Primitive Array:基本データ型の配列
List Collectionソートの場合:
Ex)ArrayList、LinkedList、Vector等*内部Array.sort()
Compareableインタフェースの使用
// x좌표가 증가하는 순, x좌표가 같으면 y좌표가 감소하는 순으로 정렬하라.
class Point implements Comparable<Point> {
int x, y;
@Override
public int compareTo(Point p) {
if(this.x > p.x) {
return 1; // x에 대해서는 오름차순
}
else if(this.x == p.x) {
if(this.y < p.y) { // y에 대해서는 내림차순
return 1;
}
}
return -1;
}
}
// main에서 사용법
List<Point> pointList = new ArrayList<>();
pointList.add(new Point(x, y));
Collections.sort(pointList);
Comparator
ソート可能クラスのデフォルトのソート基準とは異なるソート可能クラスのソートインタフェース
package: java.util.Comparator
主に익명 클래스
に使用されます.
一般的な基本ソート方法は、昇順ソート내림차순
である.
実施方法
Comparatorインタフェースを実装した後,Comparator()メソッドを超えたMyComparatorクラスを記述する.
比較()メソッドの作成方法
1番目のパラメータに移動するオブジェクト<2番目のパラメータに移動するオブジェクト:負の戻り値
1番目のパラメータのオブジェクトに移動=2番目のパラメータのオブジェクトに移動:0
1番目のパラメータのオブジェクトに移動>2番目のパラメータのオブジェクトに移動:戻る
負数または0の場合はオブジェクトの位置が保持され、正の値の場合は2つのオブジェクトの位置が変更されます.
すなわち、Integer.compare(x,y)(昇順ソート)と同じ概念である.
return (x < y) ? -1 : ((x == y) ? 0 : 1);
降順ソートでは、2つのパラメータの位置が変更されます.
Integer.compare(y,x)(降順ソート)
使用方法
Arrays.sort(array, myComparator)
Collections.sort(list, myComparator)
Arrays.sort(), Collections.sort()メソッドは、2番目のパラメータとしてComparatorインタフェースを受信することができる.
🎈 2番目のパラメータとしてComparatorインタフェースを受信します。
優先キュージェネレータの2番目のパラメータはComparatorインタフェースです.
PriorityQueue(int initialCapacity, Comparator comparator)
指定したComparatorのソート方法に従って優先度を割り当てます.
Comparatorインタフェースの使用
// x좌표가 증가하는 순, x좌표가 같으면 y좌표가 감소하는 순으로 정렬하라.
class MyComparator implements Comparator<Point> {
@Override
public int compare(Point p1, Point p2) {
if (p1.x > p2.x) {
return 1; // x에 대해서는 오름차순
}
else if (p1.x == p2.x) {
if (p1.y < p2.y) { // y에 대해서는 내림차순
return 1;
}
}
return -1;
}
}
// main에서 사용법
List<Point> pointList = new ArrayList<>();
pointList.add(new Point(x, y));
MyComparator myComparator = new MyComparator();
Collections.sort(pointList, myComparator);
Comparator匿名クラスの使用Comparator<Point> myComparator = new Comparator<Point>() {
@Override
public int compare(Point p1, Point p2) { 위와 동일 }
};
List<Point> pointList = new ArrayList<>();
pointList.add(new Point(x, y));
Collections.sort(pointList, myComparator);
Arrays.sort()
ここから.
プログラマはLv 2をソートします.最大答えを出す。、説明する。、ツールバーの、for(String str : arr)
その他のコンテンツの作成と学習を参照してください
Reference
この問題について(ツールバーの), 我々は、より多くの情報をここで見つけました
https://velog.io/@hwanyy/Java-Comparable-vs-Comparator
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(ツールバーの), 我々は、より多くの情報をここで見つけました https://velog.io/@hwanyy/Java-Comparable-vs-Comparatorテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol