KotlinのListとMutableListのサンプルです。
目次
ListとMutableList
- 1つの変数で複数の値を保持できます。
→各項目を要素(element)といいます。 - Listは、読み取り専用のクラスです。
- MutableListは、要素や要素数を変更できるクラスです。
- 以下は、KotlinのListのリンクです。
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/
要素に初期値をセットする
fun main() {
val color1 = listOf("赤","黄","青")
val color2 = mutableListOf("赤","黄","青")
println(color1) //[赤, 黄, 青]
color2.add("オレンジ");
println(color2) //[赤, 黄, 青, オレンジ]
}
2,3行目は、要素に初期値をセットしています。
要素を取得する (インデックス/get)
fun main() {
val color1 = listOf("赤","黄","青")
val color2 = mutableListOf("赤","黄","青")
println(color1[1]) //[黄]
println(color1.get(1)) //[黄]
println(color1[2]) //[青]
println(color2.get(2)) //[青]
}
5,8行目のようにインデックス指定で値を取得できます。
6,9行目のようにgetを使用するとインデックス指定するようにIDEが推奨してきます。
要素をすべて取得する (for文)
fun main() {
val color1 = listOf("赤","黄","青")
val color2 = mutableListOf("赤","黄","青")
for (i in color1.indices) {
println(color1[i]) // 赤 黄 青が出力される
}
for (i in color2.indices) {
println(color2[i]) // 赤 黄 青が出力される
}
}
indicesは、indexの複数形です。長さを返します。
指定の値があるか真偽値を返す (contains)
fun main() {
val color1 = listOf("赤","黄","青")
val color2 = mutableListOf("赤","黄","青")
if (color1.contains("黄")){
println("Trueです"); //Trueですと出力される
}
if (color2.contains("青")){
println("Trueです"); //Trueですと出力される
}
}
containsメソッドは、指定の値がある場合、trueを返します。
インデックスを取得する (indexOf)
fun main() {
val color1 = listOf("赤","黄","青")
val color2 = mutableListOf("赤","黄","青")
println(color1.indexOf("黄")); //1
println(color1.indexOf("青")); //2
}
indexOfメソッドは、要素を指定するとインデックス(位置)を返します。
要素の位置は、赤=0、黄=1、青=2です。
要素数を取得する (size)
fun main() {
val color1 = listOf("赤","黄","青")
val color2 = mutableListOf("赤","黄","青")
println(color1.size); //3
println(color2.size); //3
}
sizeは、要素数を返します。
中身が空か真偽値を返す (isEmpty)
fun main() {
val color1 = listOf("赤","黄","青")
val color2 = mutableListOf("赤","黄","青")
println(color1.isEmpty()); //false
color2.clear()
println(color2.isEmpty()); //true
}
isEmptyメソッドは、中身が空の場合、trueを返します。
要素を追加する (add)
fun main() {
val color2 = mutableListOf("赤","黄")
color2.add("青")
println(color2); //[赤, 黄, 青]
color2.add(0,"オレンジ")
println(color2); //[オレンジ, 赤, 黄, 青]
}
3行目は、addメソッドで要素を末尾に追加しています。
6行目は、位置を指定して要素を追加しています。最初の位置は0から始まります。
要素を置き換える (インデックス/set)
fun main() {
val color2 = mutableListOf("赤","黄","青")
color2[1] = "オレンジ";
println(color2); //[赤, オレンジ, 青]
color2.set(1, "紫");
println(color2); //[赤, 紫, 青]
}
4行目のようにインデックス指定で値を取得できます。
7行目のようにsetを使用するとインデックス指定するようにIDEが推奨してきます。
値を指定して要素を削除する (remove)
fun main() {
val color2 = mutableListOf("赤","黄","青")
color2.remove("赤");
println(color2); //[黄, 青]
println(color2[0]); //黄
println(color2[1]); //青
}
removeメソッドは、要素の値を指定して削除します。
インデックスを指定して要素を削除する (removeAt)
fun main() {
val color2 = mutableListOf("赤","黄","青")
color2.removeAt(0);
println(color2); //[黄, 青]
println(color2[0]); //黄
println(color2[1]); //青
}
removeAtメソッドは、要素の位置を指定して削除します。
要素の位置は、赤=0、黄=1、青=2です。
削除後のインデックス値は前につまります。
要素をすべて削除する (clearメソッド)
fun main() {
val color2 = mutableListOf("赤","黄","青")
color2.clear();
println(color2); //[]
}
clearメソッドは、すべての要素を削除します。
リストを連結する (addAll)
fun main() {
val color2 = mutableListOf("赤","黄","青")
val color3 = mutableListOf("白","黒","緑")
color2.addAll(color3);
println(color2); //[赤, 黄, 青, 白, 黒, 緑]
}
addAllメソッドは、リストを連結します。
関連の記事