kotlin Listのインデックス番号と要素両方に条件を適応して要素を取り出す

kotlin Listのインデックス番号と要素両方に条件を適応して要素を取り出す

kotlinで、Listのインデックス番号と要素両方に条件を適応して要素を取り出す手順を記述してます。対象のListに「filterIndexed」でインデックス番号と条件を指定することで可能です。

環境

  • OS windows11 home
  • java 19.0.1
  • kotlin 1.7.20-release-201

手順

Listのインデックス番号と要素両方に条件を適応して要素を取り出すには、「filterIndexed」で可能です。

List名.filterIndexed{インデックス,要素 -> 条件}

実際に、使用してみます。

fun main() {

    val list = mutableListOf(10, 20, 30, 40, 50, 60)
    
    println(list.filterIndexed  { i,v -> v > 25 && i > 3 }) // [50, 60]
    println(list.filterIndexed  { i,v -> v > 25 && i > 4 }) // [60]

    println(list) // [10, 20, 30, 40, 50, 60]

}

インデックス番号と要素両方に条件が適応されて抽出されていることが確認できます。

別のListに結果を挿入するには「filterIndexedTo」を使用します。

fun main() {

    val list = listOf(10, 20, 30, 40, 50, 60)
    val list2 = mutableListOf<Int>()
    
    list.filterIndexedTo(list2) { i,v -> v > 25 && i > 3 }   

    println(list) // [10, 20, 30, 40, 50, 60]
    println(list2) // [50, 60]

}

mutableList

「mutableList」にも使用可能です。

fun main() {

    val list = mutableListOf(10, 20, 30, 40, 50, 60)
    
    println(list.filterIndexed  { i,v -> v > 25 && i > 3 }) // [50, 60]
    println(list.filterIndexed  { i,v -> v > 25 && i > 4 }) // [60]

    println(list) // [10, 20, 30, 40, 50, 60]

}