[解決済み] KotlinのPair用コンパレータ
2022-02-18 04:01:29
質問
Kotlinで特殊な型のためのコンパレータを書くことができます。
class Comparator() : kotlin.Comparator<Pair<Double, Int>>
しかし、Comparable<...> を拡張するすべての可能な型に対してジェネリックスを使ってコンパレータを書くにはどうしたらよいでしょうか。
解決方法は?
コンパレータを作成するには、補助関数を使用します。
compareBy
,
compareByDescending
,
naturalOrder
,
reverseOrder
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.comparisons/index.html
例えば
val map = mapOf<Int, String>()
// ... add values to the map
val sortedMap: SortedMap<Int, String> = map.toSortedMap(compareByDescending { it })
そして、あなたの場合。
val comparator = compareBy<Pair<Double, Int>> { it.first }
カスタムコンパレータです。
class CustomComparator<T: Comparable<T>> : Comparator<T> {
override fun compare(o1: T, o2: T): Int {
return o1.compareTo(o2)
}
}
関連
-
[解決済み] カスタムオブジェクトのArrayListをプロパティでソートする
-
[解決済み] Kotlin 三項条件演算子
-
[解決済み] メソッドの戻り値の型を汎用的にするにはどうすればよいですか?
-
[解決済み] by lazy" と "lateinit" を使ったプロパティの初期化
-
[解決済み】TをEnumに拘束するGenericメソッドの作成
-
[解決済み】KotlinでJavaの静的メソッドに相当するものは何ですか?
-
[解決済み】Kotlinでデータクラスを拡張する
-
[解決済み】Kotlin Androidでデータクラスに空のコンストラクタを作成する方法
-
[解決済み】JavaからKotlinの拡張関数にアクセスする
-
[解決済み] Kotlinのジェネリックにおける "*"と "Any "の違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] golangでチャンTの満杯を監視する
-
[解決済み] KotlinのPair用コンパレータ
-
[解決済み】Kotlinのreifiedキーワードはどのように機能するのですか?
-
[解決済み】Scala。抽象型とジェネリックス
-
[解決済み] Kotlinのジェネリックにおける "*"と "Any "の違いについて
-
[解決済み] なぜ例がコンパイルできないのか、別名、(co-, contra-, in-)分散はどのように機能するのか?
-
[解決済み] KotlinでGsonを使ったTypeToken + ジェネリックの使い方
-
[解決済み] kotlinのoutキーワードとは
-
[解決済み] なぜGoにはジェネリックがないのか?