Kotlin で空の可変リストを作成する
-
Kotlin で
mutableListOf()メソッドを使用する -
Kotlin で
arrayListOf()メソッドを使用する - Kotlin でデータ構造のコンストラクターを使用する
- Kotlin で暗黙の宣言を使用する
- まとめ
例に飛び込む前に、タイプリストデータを操作するときの 2つの一般的な用語を理解する必要があります。
用語には、可変および不変が含まれます。可変リストは、データ構造内の要素を追加または削除することで変更できるリストです。
不変リストは、データ構造内の要素を追加または削除しても変更できないリストです。
2つの用語から、List と MutableList を含む 2 種類のリストを作成できます。MutableList は List インターフェイスから継承するため、リストであることに注意してください。
MutableList タイプは変更可能なリストを返し、List タイプは変更できないリストを返します。ただし、リストが可変か不変かを指定せずにリストの実装を作成すると、デフォルトで可変であると見なされます。
このチュートリアルでは、空の可変リストを作成する方法を説明します。空のリストは、データ構造に要素がないことを意味します。
Kotlin で mutableListOf() メソッドを使用する
IntelliJ に移動して、新しい Kotlin プロジェクトを作成します。kotlin フォルダの下に Main.kt という名前の新しい Kotlin ファイルを作成します。
次のコードをコピーしてファイルに貼り付けます。
val mutableEmptyList: MutableList<String> = mutableListOf();
fun main() {
println(mutableEmptyList.isEmpty());
mutableEmptyList.add("I am the first element !")
println(mutableEmptyList.isEmpty());
}
mutableListOf() メソッドは、タイプ MutableList の空のリストを返します。これは、データ構造内の要素を追加および削除できることを意味します。これを確認するために、返されたオブジェクトで add() または remove() メソッドを呼び出すことができます。
上記のコードを実行すると、以下に示すように、isEmpty() メソッドは、要素が追加される前は true を返し、要素が追加された後は false を返すことに注意してください。
true
false
Kotlin で arrayListOf() メソッドを使用する
前の例にコメントし、次のコードを Main.kt ファイルに貼り付けます。
val mutableEmptyList: MutableList<String> = arrayListOf();
fun main() {
println(mutableEmptyList.isEmpty());
mutableEmptyList.add("I am the first element !")
println(mutableEmptyList.isEmpty());
}
arrayListOf() メソッドは空の ArrayList を返しますが、前の例では、MutableList を返しています。これはどのように可能ですか?
はじめにのセクションで、MutableList は List インターフェイスから継承するため、List であると述べました。ArrayList は List インターフェイスを実装しているため、ArrayList を使用して MutableList を返すことができます。
可変リストにアクセスできるようになったら、isEmpty() メソッドを呼び出して、メソッドが空かどうかを確認できます。上記のコードを実行し、出力が次のようになっていることを確認します。
true
false
Kotlin でデータ構造のコンストラクターを使用する
前の例にコメントし、次のコードを Main.kt ファイルに貼り付けます。
import java.util.LinkedList
val mutableEmptyList: MutableList<String> = LinkedList();
fun main() {
println(mutableEmptyList.isEmpty());
mutableEmptyList.add("I am the first element !")
println(mutableEmptyList.isEmpty());
}
LinkedList クラスは List インターフェイスを実装します。これは、タイプ LinkedList の MutableList を返すのに役立ちます。
LinkedList() コンストラクターは空のリストを返し、List インターフェースを実装する他のデータ構造のコンストラクターに適用されます。
上記の例を実行し、出力が他の例と同じように出力されることに注意してください。出力を以下に示します。
true
false
Kotlin で暗黙の宣言を使用する
前の例にコメントし、次のコードを Main.kt ファイルに貼り付けます。
val mutableEmptyList = ArrayList<String>();
fun main() {
println(mutableEmptyList.isEmpty());
mutableEmptyList.add("I am the first element !")
println(mutableEmptyList.isEmpty());
}
前の例で述べたように、必要な戻りタイプである MutableList を直接指定していました。はじめにのセクションで、読み取り専用リストが必要かどうかを指定しない場合、リストの実装は変更可能であると見なされることを説明しました。
この例は、戻りタイプを示さずに List 実装を定義することにより、MutableList が暗黙的に返される方法を示しています。
上記のコードを実行し、AbstractCollection クラスから継承された isEmpty() メソッドは、要素が追加される前は true を返し、要素が追加された後は false を返すことに注意してください。出力を以下に示します。
true
false
まとめ
このチュートリアルでは、mutableListOf() メソッドの使用、arrayListOf() メソッドの使用、データ構造のコンストラクターの使用、および暗黙の宣言アプローチ。
David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.
LinkedIn GitHub