■コレクション型
複数の値を格納できるもの
配列も複数入るがコレクション型ではない。
コレクション型はList,Set,Mapの3つからなっている。
■List
●複数の値を格納できる。
●読み込み専用と変更可能ができる2つの種類がある。
●順番がある。インデックス番号で値にアクセスできる。
●値が被っていても許される。
■読み取り専用と変更可能な List
■読み取り専用
中身の変更ができないそのままの配列を使う時に使う。
▼書き方
val hoge = listOf(1,2,3)
■変更可能
中身の値を記述してから変更する事ができる。
▼書き方
mutableをつける。
val hoge2 = mutableListOf(1,2,3)
▼お互いそのまま変数名だけで中身を全て出力できる。
val hoge = listOf(1,2,3)
val hoge2 = mutableListOf(1,2,3)
println(hoge)
//結果: [1,2,3]
println(hoge2)
//結果: [1,2,3]
■型パラメータ
▼読み取り専用の場合
List<型名>
val hoge: List<String> = listOf("かに","さそり","魚")
▼変更可能なmutableの場合
MutableList<型名>
val hoge2: MutableList<String> = mutableListOf("豚","牛","鳥")
■MutableListの追加と消去
▼空のMutableListを用意
配列では要素数を決めnullを埋めて作るある意味,空の配列は用意できた。
MutableListでは要素数もなくnullを埋めるわけでもない。
//String型を指定している。
val hoge = mutableListOf<String>()
//Any型も指定可能
val hoge = mutableListOf<Any>()
▼値を追加
add(追加したい値)でMutableListの末尾に値を追加します。
hoge.add("かめ")
add(インデックス番号,値)で値を好きなインデックスの場所に追加できます。
hoge.add(0,"さる")
println(hoge)
//上記2つのaddの結果: ["さる","かめ"]
+=演算子で値を末尾に追加も可能
hoge += "吉野"
println(hoge)
//結果:上記3つの結果 ["さる","かめ","吉野"]
▼複数の値を追加
■addAllで中身のlistOf()を全部MutableList()に追加するよ
val aaa = MutableListOf<Int>()
//追加する値をlistOf()でまとめている。
aaa.addAll(listOf(1,2,3,4))
println(aaa)
//結果: [1,2,3,4]
//変数にしてaddAllの引数に渡す事もできる。
val bbb = listOf(5,6,7,8)
aaa.addAll(bbb)
■+=演算子でも同じ事ができる。
aaa += listOf(1,2,3,4)
■スコープ関数のapplyを使って連続で値を追加も可能
//applyでaaaを省略している。
aaa.apply{
add(1)
add(2)
add(3)
}
▼値を消去
■remove(消去したい値)で値を消去
hoge.remove("かめ")
■-=演算子で消去も可能
hoge -= "かめ"
■インデックス番号を指定して消去
removeAt(インデックス番号)
hoge.removeAt(0)
■全ての値を消去
clear()
hoge.clear()