Kotlin Collection

https://kotlinlang.org/docs/collections-overview.html#collection-types

List #

https://dev.to/kotlin/diving-into-kotlin-collections-587o

Listのソート #

data class MyObject(var name:String,var number:Int)

val myObjectList: MutableList<MyObject>? = mutableListOf()

var sortedByName =  myObjectList.sortedBy { myObject -> myObject.name }
var sortedByNumber =  myObjectList.sortedBy { myObject -> myObject.number }

Listに追加 (イミュータブル) #

val stringList = listOf<String>()
stringList = stringList + "append this string"

Listに追加(ミュータブル) #

val stringList = mutableListOf<String>()
stringList.add("append this string")

先頭を落とす #

stringList.drop(1)

引数で落とす数を指定する。

長さ #

sizeにアクセスする。

stringList.size

map #

first #

lazy な評価がされる方法 #

Collection(List)でなくSequenceにすると、必要なところのみの評価で終えることができる

Iterator(「りすと」).asSequence().map{it.copy(color=yellor)}.first{it.shape==squre}

とすると最初のsquareが出てくるところまで終了。mapはリスト全部の要素には実行しないで済む。

mapとfirstは逆にしたほうがなおよい

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/

https://kotlinlang.org/docs/collections-overview.html#list

Map #

   private val referenceTxt:Map<String, String> = mapOf(
        "a" to "A is selected",
        "b" to "B is selected",
        "10" to "10 is selected",

    )