値をフィルタリングする
CoddyのKotlinジャーニー「ロジックとフロー」セクションの一部。レッスン 32/63。
filterは、述語ラムダがtrueを返す要素を保持します。要素の順序は維持され、返される要素が少なくなる場合や、まったくなくなる場合があります。mapの前にfilterを連結すると、保持された値だけが変化します。
main内:
println(listOf(-2, 0, 3, 4).filter { it > 0 }.map { it * 2 })3と4だけが述語を満たし、それらの値がその後2倍されます。
filter は Boolean 述語でメンバーシップを判定し、保持された順序を維持します。
チャレンジ
中級パラメーター values: List<Int> を使用して positiveValues を完成させてください。入力順を維持しながら、厳密に正の値のみを返してください。filter を使用してください。
上記でより厳しい境界が指定されていない限り、各レベルのコレクションには最大100個の要素が含まれ、整数の引数および整数コレクションの値は -1000 から 1000 の範囲です。解析用に提供されるテキストには、説明されているように無効または範囲外の表現が含まれる場合があります。
型 List<Int> の値を返してください。提供された入力/出力コードは変更せずに使用してください。スカラー引数は1行に1つずつ読み取られます。リストは要素数に続いて各要素が続く形式で始まり、マップはエントリ数に続いて各キーと値が続く形式で始まります。ネストされたリストでは、各行について要素数と要素の形式が繰り返されます。提供された main は、戻り値の後に改行を1つ出力します。リストには Kotlin 標準の角括弧形式を使用し、追加のラベルは出力しないでください。
自分で試してみよう
fun positiveValues(values: List<Int>): List<Int> {
// ここに解答を書いてください。
return emptyList()
}
fun main() {
val valuesCount = readln().toInt()
val values = mutableListOf<Int>()
for (i0 in 0 until valuesCount) {
val valuesItem = readln().toInt()
values.add(valuesItem)
}
println(positiveValues(values))
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド