キーによる並べ替え
CoddyのKotlinジャーニー「ロジックとフロー」セクションの一部。レッスン 36/63。
sortedByは各要素の比較キーを計算し、キーの昇順で新しいリストを返します。sortedByDescendingはキーの順序を逆にします。Kotlinのソートは安定しているため、キーが等しい場合は元の相対的な順序が維持されます。
mainの中で:
println(listOf("pear", "a", "kiwi", "to").sortedBy { it.length })単語は長さ順に並べられます。pear と kiwi は長さが同じなので、pear は kiwi より前に残ります。
sortedByは、キーが等しい要素間の元の順序を保持します。
チャレンジ
中級パラメーター words: List<String> を持つ shortWordsFirst を完成させてください。単語を長さの昇順で返してください。同じ長さの場合は、元の順序を維持してください。
上記でより厳しい範囲が指定されていない限り、各レベルのコレクションには最大100個の要素が含まれ、整数の引数および整数のコレクション値は -1000 から 1000 の間です。解析用に提供されるテキストには、説明されているように、無効または範囲外の表現が含まれる場合があります。
型 List<String> の値を返してください。提供された入力/出力コードはそのまま使用してください。スカラー引数は1行に1つずつ読み取られます。リストは要素数の後に各要素が続く形式で始まり、マップはエントリ数の後に各キーと値が続く形式で始まります。ネストされたリストでは、各行について要素数と要素の形式を繰り返します。提供された main は、戻り値の後に改行を1つ出力します。リストには Kotlin 標準の角括弧形式を使用し、追加のラベルは出力しないでください。
自分で試してみよう
fun shortWordsFirst(words: List<String>): List<String> {
// ここに解答を書いてください。
return emptyList()
}
fun main() {
val wordsCount = readln().toInt()
val words = mutableListOf<String>()
for (i0 in 0 until wordsCount) {
val wordsItem = readLine().orEmpty()
words.add(wordsItem)
}
println(shortWordsFirst(words))
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド