Kotlin でリストを初期化するための究極のガイド
Kotlin List<T>
は、複数の要素のコレクションを参照します。 構文の <T>
は、未定義のデータ型を示します。 これは、List<T>
を使用して初期化されたリストには特定のデータ型がないことを意味します。
Collections
クラスの定義済み関数を使用して、いつでも List
の項目に簡単にアクセスして変更できます。
Kotlin では、不変と可変の 2 種類のリストを初期化できます。 これらのリストを初期化するにはさまざまな方法があり、この記事で説明します。
Kotlin で不変リストを初期化する
不変リストは、一度作成すると変更できないコレクションです。 これらは、List
インターフェイスを使用して定義され、List
や ArrayList
などの List
実装クラスによって表されます。
不変リストを初期化する 3つの方法について学習します。 これらの 3つの方法には、次のものが含まれます。
listOf()
emptyList()
listOfNotNull()
listOf()
関数で Kotlin リストを初期化する
listOf()
は Collections
クラスの最上位関数です。 このメソッドは、項目の不変リストを作成します。 Java での Arrays.asList
の使用に似ています。
次の構文を使用して、不変の Kotlin リストを初期化できます。
val listName = listOf(item1, item2, item3)
次に、上記の構文を使用して簡単な Kotlin プログラムを作成します。 このプログラムでは、Fruits
という名前の不変の Kotlin List
を作成し、いくつかの果物を追加します。
fun main(args: Array<String>) {
val Fruits = listOf("Apple", "Mango", "Strawberry")
println(Fruits)
}
これは不変リストです。 したがって、定義済みのメソッドを使用してリストを変更すると、エラーが発生します。
add()
関数を使用して、前の例で定義したのと同じ不変リストに要素を追加しようとすることで、これを実際に確認します。
fun main(args: Array<String>) {
val Fruits = listOf("Apple", "Mango", "Strawberry")
println(Fruits)
Fruits.add("Kiwi")
println(Fruits)
}
出力に見られるように、add()
メソッドは unresolved reference: add
エラーをスローします。
emptyList()
関数で Kotlin リストを初期化する
不変の Kotlin List
を作成する次の方法は、emptyList()
関数を使用することです。 listOf()
関数と同様に機能しますが、唯一の違いは、空のリストを作成することです。
これは、リストを作成することを意味しますが、リストが空になるため、初期化は行われません。
emptyList()
関数を使用する構文は次のようになります。
val listName: List<String/Int> = emptyList()
emptyList()
を使用して、Kotlin で空の不変リストを作成する方法を示すプログラムを次に示します。
fun main() {
val emptyImmutableList: List<String> = emptyList()
println(emptyImmutableList)
}
listOfNotNull()
関数で Kotlin リストを初期化する
listOfNotNull()
関数は、null
を含まない既存のコレクションから新しいリストを返します。
いくつかの String
値といくつかの null
値を持つリストがある場合、このメソッドは String
値のみを持つ新しいリストを提供します。 ただし、リストに null
値しかない場合、関数は空のリストを返します。
結果のリストは読み取り専用です。 したがって、listOfNotNull()
関数は、不変の Kotlin リストを初期化する方法として機能します。
listOfNotNull()
関数の構文は次のとおりです。
fun <T : Any> listOfNotNull(element: T?): List<T>
以下のプログラムでは、3つのリストを作成します。 1つは null
値のみを持ち、2 番目は non-null
値のみを持ち、3 番目は null
値と non-null
値の混合を持ちます。
fun main(args: Array<String>) {
val nullValuesList = listOfNotNull(null, null)
println(nullValuesList)
val nonNullValuesList = listOfNotNull(13, "Hello", "Hi", 96)
println(nonNullValuesList)
val mixList = listOfNotNull(13, null, "Hello", null, 96)
println(mixList)
}
最初の println()
関数は、最初のリスト nullValuesList
に 2つの null
値しかないため、空のリストになります。 2 番目の println()
関数は、2 番目のリスト nonNullValuesList
のすべての要素を出力します。
ただし、3 番目の println()
関数は、mixList
からの non-null
値のみを含むリストを出力します。
Kotlin で可変リストを初期化する
可変リストは、必要に応じてアクセスして変更できる変更可能なコレクションです。 このセクションでは、Kotlin リストを初期化する 2つの方法を見ていきます。
実行する2つの方法は次のとおりです。
mutableListOf()
arrayListOf()
mutableListOf()
関数で Kotlin リストを初期化する
変更可能な Kotlin リストを初期化する最初の方法は、mutableListOf()
メソッドを使用することです。 listOf()
関数と同様に、mutableListOf()
も Kotlin List
の作成と初期化を可能にします。
ただし、この関数は変更可能なリストを作成します。つまり、このリストから要素を追加または削除できます。
mutableListOf()
の構文は次のとおりです。
var listName = mutableListOf(item1, item2, item3)
以下の Kotlin プログラムを作成して、Fruits
という名前の変更可能なリストを作成および初期化します。 次に、リストに新しい要素を追加し、別のアイテムを削除します。
fun main(args: Array<String>) {
var Fruits = mutableListOf("Apple", "Mango", "Strawberry")
println(Fruits)
// Adding a new element to the list
Fruits.add("Kiwi")
println(Fruits)
// Removing an element from the list
Fruits.remove("Mango")
println(Fruits)
}
出力に見られるように、今回は add()
関数は unresolved reference
エラーをスローしません。 これは、作成したリストが可変であるためです。
arrayListOf()
関数で Kotlin リストを初期化する
変更可能な Kotlin list
を初期化するもう 1つの方法は、arrayListOf()
関数を使用することです。 このメソッドは、配列を作成して初期化します。
arrayListOf()
関数の構文は次のとおりです。
var listName = arrayListOf(item1, item2, item3)
上記の構文を使用して、Cars
という名前の変更可能な Kotlin ArrayList
を作成し、いくつかの自動車ブランドで初期化します。 次に、新しい要素を ArrayList
に追加して、それが変更可能であることを確認します。
fun main(args: Array<String>) {
var Cars = arrayListOf("Mercedes Benz", "BMW", "Bentley")
println(Cars)
Cars += listOf("Ferrari", "Lamborghini")
println(Cars)
}
Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.
LinkedIn