【2024年4月】弊社では、基本リモートワークで一緒に成長してくださるメンバーを広く募集させていただいております。 詳細はこちら

【Android】KotlinにおけるListとは?Listの使い方や初期化、Array・ArrayListとの違いについて徹底解説!

【Android】KotlinにおけるListとは?Listの使い方や初期化、Array・ArrayListとの違いについて徹底解説!
すだ

Androidアプリ開発者のみなさま〜!
メモリアインクのすだです。

今回は、Kotlinでの「List」の使い方やArrayとの違いについて、
実際にコードを書いて学んでいきましょう!

この記事を読んでわかること…
・Listとは?
・Listの使い方について
・「List」と「Array、ArrayList」 の違いについて

目次

環境

  • Kotlin (ver 1.9.0)
  • Android Studio (Giraffe | 2022.3.1 Patch 3)

Listとは?

Listは、順序付けられた要素のコレクション(集合)であり、同じ値の要素を複数持つことができます。

一般的には「配列」と呼ばれることもあり、
データを指定の順に並べて格納できる箱のようなものです。

これを使うことで、複数のデータを一つの変数に格納し、必要に応じて簡単にアクセスしたり操作したりすることができます。

例えてみると、ListはショッピングリストやTODOリストのようなものです。
リストには順番があり、1つ目、2つ目といったように、それぞれの項目が特定の位置に存在します。
そして、その中の各項目は異なるデータ(例えば、文字列や数字など)を保持することができます。

【Android】KotlinにおけるListとは?Listの使い方や初期化、Array・ArrayListとの違いについて徹底解説!

Listの使い方について


Kotlinでは、Listにはイミュータブル(変更不可)とミュータブル(変更可能)の二種類があります。

イミュータブルなList(変更不可)

このタイプのリストは、一度作成するとその内容を変更することができません。
つまり、要素を追加したり削除したりすることができない、「読み取り専用」のリストです。

これはlistOf関数を使って初期化(Listを作成し、それに最初から特定の要素を入れること)をします。

val shoppingList = listOf("にんじん", "じゃがいも", "たまねぎ", "にく", "カレールー")

ミュータブルなList(変更可能 : 追加/削除/更新)

かえって、このタイプのリストは、内容の変更が可能です。
要素の追加、削除、更新などが自由に行えます。

これはmutableListOf関数を使って初期化します。

val shoppingList = mutableListOf("にんじん", "じゃがいも", "たまねぎ", "にく", "カレールー")

① Listに要素を追加したい場合(add

shoppingList.add("トマト")

② Listの要素を削除したい場合 (remove/ removeAt

// にんじん を削除
shoppingList.remove("にんじん")

// または

// インデックス0(リストの最初の要素 = にんじん)を削除
shoppingList.removeAt(0)

③ Listの要素を更新したい場合 ( 代入 / set

 // インデックス0(リストの最初の要素 = にんじん)の要素を"ナス"に置換
shoppingList[0] = "ナス"

// または

shoppingList.set(0, "ナス")

Array、ArrayListとは?Listとの違いについて

ArrayArrayListも、Listと同様にデータを指定の順に並べて格納できる箱(= 配列)です。

基本的には以下のようにarrayOfarrayListOfを使って初期化します。

// Array
val shoppingList = arrayOf("にんじん", "じゃがいも", "たまねぎ", "にく", "カレールー")

// ArrayListOf
val shoppingList = arrayOf("にんじん", "じゃがいも", "たまねぎ", "にく", "カレールー")

List、Array、ArrayListの違いについては、主に以下の3点が挙げられます。

List
・要素の内容を変更できるか: NG(ミュータブルなタイプはOK)
・要素数を変更できるか: NG

Array
・要素の内容を変更できるか OK
・要素数を変更できるか NG

ArrayList
・要素の内容を変更できるか OK
・要素数を変更できるか OK

要素数を変えられるかどうか

イミュータブルなListArrayは、要素の数を変更することができません。

対してArrayListは、要素の数を変更することができます。

val shoppingList = arrayListOf("にんじん", "じゃがいも", "たまねぎ", "にく", "カレールー")

// 要素を追加
shoppingList.add("ピーマン")
すだ

シーンによって使い分けができそうですね!

読み取り専用や変更不要のコレクションを扱う場合は、イミュータブルなListが、

固定サイズのコレクションや要素の変更が考えられる場合にはミュータブルなList、パフォーマンス面を考えるとArrayが良さそうです。

サイズが動的に変更される可能性がある、または要素の操作が頻繁に行われる場合はArrayListを使用してみてください!

まとめ

おつかれさまでした〜!

アプリ画面の一覧表示やまとまったデータの取り扱いには、
ListやArrayを使用することが多々ありますので
ぜひ使い方をマスターして開発に活かしてくださいね〜!

すだ

技術者としてのキャリアパスを次のレベルへと進めたい皆様、
未経験からIT・Webエンジニアを目指すなら【ユニゾンキャリア】
を通じて、
自分の市場価値をさらに向上させてみませんか?

それではまた次の記事でお会いしましょう!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次