kotlin Listの要素を検索する

kotlinで、Listの要素を検索する手順を記述してます。「binarySearch」に検索したい値を指定することで可能です。
環境
- OS windows11 home
- java 19.0.1
- kotlin 1.7.20-release-201
手順
Listの要素を検索するには、「binarySearch」で可能です。
List名.binarySearch(検索する値)
実際に、使用してみます。
fun main() {
val list = listOf(1, 2, 3, 4, 5, 10)
println(list.binarySearch(2)) // 1
println(list.binarySearch(3)) // 2
println(list.binarySearch(10)) // 5
println(list.binarySearch(6)) // -6
}
値から位置が取得されていることが確認できます。
Listの要素が重複していると、最初に見つかった位置が返ります。
fun main() {
val list = listOf(1, 2, 2, 3, 5, 5)
println(list.binarySearch(2)) // 2
println(list.binarySearch(3)) // 3
println(list.binarySearch(5)) // 4
}
また、Listがソートされていない場合は正しい結果が得られません。
fun main() {
val list = listOf(1, 2, 3, 4, 55, 10)
println(list.binarySearch(2)) // 1
println(list.binarySearch(3)) // 2
println(list.binarySearch(10)) // -5
println(list.binarySearch(6)) // -5
}
範囲を指定して検索することも可能です。
fun main() {
val list = listOf(10, 20, 30, 40, 50)
println(list.binarySearch(element = 30, fromIndex = 0, toIndex = 3)) // 2
println(list.binarySearch(element = 30, fromIndex = 1, toIndex = 3)) // 2
}
mutableList
「mutableList」にも使用可能です。
fun main() {
val list = mutableListOf(1, 2, 3, 4, 5, 10)
println(list.binarySearch(2)) // 1
println(list.binarySearch(3)) // 2
println(list.binarySearch(10)) // 5
println(list.binarySearch(6)) // -6
}
-
前の記事
Redis set型のデータをランダムに取得する 2023.11.05
-
次の記事
MariaDB 角度からラジアン値に変換する 2023.11.06
コメントを書く