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