■ はじめに
https://dk521123.hatenablog.com/entry/2018/09/13/001546
の続き。 今回は、配列・コレクションについて扱う
実行環境
https://try.kotlinlang.org/#/Examples/Hello,%20world!/Simplest%20version/Simplest%20version.kt
目次
【1】配列(Array) 【2】List / MutableList 【3】Set / MutableSet 【4】Map / MutableMap 【5】Pair / Triple / data class 【6】配列・コレクションあれこれ
【1】配列(Array)
* Arrayクラスを使う * arrayOf() で初期化
サンプル
var values:Array<Int> = arrayOf<Int>(1, 2, 3, 4, 5) for (value in values) { println("value is $value") }
【2】List / MutableList
* List : 読み取り専用 * MutableList : 読み書きOK
サンプル
val values:List<String> = listOf("Hello", "world", "!!") for (value in values) { print("value is $value\n") }
List to Array
val samples = mutableListOf<String>() val sampleArray = samples.toTypedArray()
https://www.techiedelight.com/convert-list-to-array-kotlin/
空リスト
emptyList() if (emptyList.isEmpty()) { print("empty") }
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/empty-list.html
【3】Set / MutableSet
* Set : 読み取り専用 * MutableSet : 読み書きOK
【4】Map / MutableMap
* Map : 読み取り専用 * MutableMap : 読み書きOK
サンプル
例1:Map
val maxWordMapper = mapOf( 0 to 5, 1 to 10, 2 to 15, 3 to 20, 4 to 50, 5 to 100 ) var maxWord = maxWordMapper[0]
例2:mutableMapOf
private val wordMap = mutableMapOf<Int, String>() wordMap[0] = "Hello" wordMap[1] = "World"
【5】Pair / Triple / data class
Pair
* Kotlin特有のKey-Value型のクラス * 2つの値を返す
Triple
* 3つの値を返す
data class
* 4つ以上の値を返す
サンプル
var keyValue = Pair("hello", 1) var key = keyValue.first var value = keyValue.second println("Results are $key / $value") // Results are hello / 1
参考文献
https://qiita.com/sdkei/items/2d5dab51b53975286945
【6】配列・コレクションあれこれ
1)ランダムな配列・コレクションの生成
* shuffled() を使う
サンプル
val values = listOf("Hello", "world", "Mike", "!!") val randumValues = values.shuffled() for (value in randumValues) { println("value = $value") } // [出力結果例(毎回変わる)] // value = Hello // value = Mike // value = world // value = !!
関連記事
Kotlin ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2018/09/13/001546
Kotlin ~ 基本編 / スコープ関数 ~
https://dk521123.hatenablog.com/entry/2020/07/19/000000
Kotlin ~ 基本編 / クラス ~
https://dk521123.hatenablog.com/entry/2020/07/23/000000