Open4

Kotlin学習 その4

Kohne62Kohne62

KotlinのCollection

  • Lists: 順序立てされたアイテムのコレクション
  • Sets: 順序立てされていないユニークなアイテムのコレクション
  • Maps: keyが一意であり、一つの値のみにマップされるkeyとvalueのペアのセット
Kohne62Kohne62

List

  • 読み取り専用のListを作るにはlistOf()を使う
  • ミュータブルなListを作るにはmutableListOf()を使う
  • Listの要素数を数えるのは.count()
  • List内に特定アイテムがあるかチェックするのはin演算子を使う
val readOnlyShapes = listOf("triangle", "square", "circle")
println("circle" in readOnlyShapes) // true
  • ミュータブルなListにアイテムを追加したり削除するにはそれぞれ.add().remove()を使う
Kohne62Kohne62

Set

  • 読み取り専用のSetを作るにはsetOf()を使う
  • ミュータブルなSetを作るにはmutableSetOf()を使う
  • Setはユニークな要素しか入れられないため同じ要素は入れられない
// Mutable set with explicit type declaration
val fruit: MutableSet<String> = mutableSetOf("apple", "banana", "cherry", "cherry")

println(readOnlyFruit)
// [apple, banana, cherry]
  • Setの要素数を数えるのは.count()
  • Set内に特定アイテムがあるかチェックするのはin演算子を使う
  • ミュータブルなSetにアイテムを追加したり削除するにはそれぞれ.add().remove()を使う
Kohne62Kohne62

Map

  • keyは一意だがvalueは一意じゃなくてもいい
  • 読み取り専用のSetを作るにはmapOf()を使う
  • ミュータブルなSetを作るにはmutableMapOf()を使う
  • Mapの型を定義するにはkeyとvalueそれぞれの型を定義する必要がある
// Mutable map with explicit type declaration
val juiceMenu: MutableMap<String, Int> = mutableMapOf("apple" to 100, "kiwi" to 190, "orange" to 100)
println(juiceMenu)
// {apple=100, kiwi=190, orange=100}
  • 不必要な変更を防ぐためには、Mapにキャストすることで読み取り専用ビューを取れる
val juiceMenu: MutableMap<String, Int> = mutableMapOf("apple" to 100, "kiwi" to 190, "orange" to 100)
val juiceMenuLocked: Map<String, Int> = juiceMenu
  • ミュータブルなMapにアイテムを追加したり削除するにはそれぞれ.put().remove()を使う
  • Map内に特定keyがあるかチェックするのは.containsKey()を使う
val readOnlyJuiceMenu = mapOf("apple" to 100, "kiwi" to 190, "orange" to 100)
println(readOnlyJuiceMenu.containsKey("kiwi"))
// true
  • Map内に特定key, valueがあるかチェックするのはin演算子を使う