ArrayListの違い () と mutableListOf Kotlinの()について質問する

ArrayListの違い () と mutableListOf Kotlinの()について質問する
private val repositories = mutableListOf<String>()

private val repositories = ArrayList<String>()

どちらも変更可能なリストですが、 または という 2 つのキーワードの意味は何でしょうmutableListOfArrayList?

それとも大きな違いがあるのでしょうか?

ベストアンサー1

両者の唯一の違いは、意図を伝えることです。

と書くとval a = mutableListOf()、「変更可能なリストが欲しいが、実装については特に気にしない」と言っていることになります。 代わりに、 と書くと、val a = ArrayList()「具体的には が欲しいArrayList」と言っていることになります。

実際には、JVM にコンパイルされる Kotlin の現在の実装では、 を呼び出すとmutableListOfが生成されArrayList、動作に違いはありません。リストが構築されると、すべてが同じように動作します。

さて、Kotlin の将来のバージョンでは、mutableListOf異なるタイプのリストを返すように変更されたとします。

おそらく、Kotlin チームは、新しい実装がほとんどのユースケースでより適切に機能すると判断した場合にのみ、その変更を行います。そうすれば、mutableListOf新しいリスト実装を透過的に使用でき、より優れた動作を無料で得ることができます。mutableListOfそれがあなたのケースに当てはまる場合は、 を選択してください。

一方、あなたは自分の問題について長い時間をかけて考え、ArrayList 本当にが問題に最も適しており、最適ではないものに移行するリスクを冒したくない場合は、 をArrayList直接使用するか、arrayListOfファクトリ関数 (ArrayListの 固有の類似物mutableListOf) を使用することをお勧めします。

おすすめ記事