【Kotlin入門】Listとは?使い方をわかりやすく解説

50種類以上のIT教材を無料で使える!
0円から学習できるオンラインITスクール「侍テラコヤ」
→さっそく登録する
KotlinでListの使い方がよくわからない
Listの扱い方がよくわからない
Listの種類がよくわからない

Kotlinの学習を始めたての方はListの種類や使い方、持ってる関数などよくわからないところもありますよね。

こんにちは!エンジニアのかいです。Kotlinをこれから始めようとしている人、もしくは始めたての人であればKotlinのListについていまいち理解できていない人もいると思います。

そこで本日はKotlin初心者の方を対象にListの使い方や種類など詳しく解説していきますのでこれからListを学びたいという方はぜひ参考にしていってください。

この記事はこんな人のために書きました。

  • KotlinでListを使いこなしたい
  • Listの種類を理解して、場合に応じたものを使えるようになりたい
  • Listのもつメソッドなども使って見たい

KotlinのListとは

Kotlinには標準のライブラリとして様々なものが用意されていますが、その中の一つにコレクションというものがあります。コレクションの中にはListやMapなどを司る様々なインターフェースが用意されています。

そのインターフェースが実装されたlistOf()やmapOf()などを使うことで、ListやMapを生成することができます。

KotlinのListには(Listにはというよりコレクションには)、書き込み可能なものと読み込み専用なものがあります。それぞれの使い方を謝るとバグの原因になりますね。

これらについては、後述するのでしっかりと理解しておきたいところです。

Listを使うメリット

さて、ここで一度立ち返ってListを使うメリットについて考えましょう。Listとは、配列などとも言われるインデックスで値を管理する箱みたいなものですね。

つまり、たくさんのデータを一つの箱に入れて扱うことができるのです。配列は、プログラミングをする上で必須前提となる知識なのできちんと理解しておきましょう。


【なかなかエラーが解決できない…そんな悩みを解決します!】

登録無料で始められるプログラミングスクール「侍テラコヤ」

・回答率100%のQ&A掲示板でエラーを解決!
現役エンジニアとのオンライン相談で悩みを解決!
・50種類以上の教材で複数言語を習得!

侍テラコヤについて詳しく見る

Listを使ってみよう

さて、それでは実際にListを使って見ましょう。

上記にもあげた通りKotlinにはListインターフェースが実装されたメソッドがいくつかあります。

fun main(args: Array<String>) {
    val list = listOf(1,2,3)
    println(list)
}
[1, 2, 3]

このように書くことで配列を作成することができます。

fun main(args: Array<String>) {
    val list = listOf(1,2,3)
    println(list[1])
}
2

また、このようにインデックスを指定することで中身の値を指定することができますね。配列はfor文とセットで扱われることが多く、以下のようなコードはよく見かけます。

fun main(args: Array<String>) {
    val list = listOf(1,2,3)
    for(i in list){
        println(i)
    }
}
1
2
3

sortしてみよう

さて、それではListの持つメソッドであるsortedを使ってみましょう。

fun main(args: Array<String>) {
    val list = listOf(3,2,1).sorted()

    println(list)
}
[1, 2, 3]

このとおり、昇順になりましたね。

mutableなlist

冒頭で話した通りListには変更可能なものと、読み取り専用のものがあります。それぞれの挙動について理解しましょう。

fun main(args: Array<String>) {
    val mutableList = mutableListOf(1, 2, 3)
    mutableList.add(4)

    println(mutableList)
}
[1, 2, 3, 4]

変更可能なのが確認できますね。

読み取り専用なlist

fun main(args: Array<String>) {
    val ro = listOf(1, 2, 3)
    ro.add(4)

    println(ro)
}
Error:(3, 8) Kotlin: Unresolved reference: add

このように、listOfで読み取り専用なListをつくるとコンパイルエラーになりますね。

配列の種類

Kotlinには3つの配列があり、今回紹介したListもその1つです。この章では、その3種類について違いを説明していきます。

3つの配列とは、List, Array, ArrayListのことでそれぞれの以下の特徴があります。

配列特徴
List要素の変更:不可
要素数の変更:不可
Array要素の変更:可
要素数の変更:不可
ArrayList要素の変更:可
要素数の変更:可

List

Listは先ほど説明した通り、要素の変更も、要素数の変更も許されていません。読み取り専用なので当たり前といえば当たり前ですね。

Array

Arrayは、要素の変更は許されているが、要素数の変更は許されていない配列です。例をみてみましょう。

fun main(args: Array<String>) {
    val arr = arrayOf(1,2,3)
    arr[0] = 4

    for(i in arr){
        println(i)
    }
}
4
2
3

値の変更が確認できますね。

fun main(args: Array<String>) {
    val arr = arrayOf(1,2,3)
    arr.add(9)

    for(i in arr){
        println(i)
    }
}
Error:(3, 9) Kotlin: Unresolved reference: add

しかしこのように要素の追加は許されていません。

ArrayList

さて、最後のArrayListは変更も追加も許されている配列です。

fun main(args: Array<String>) {
    val arrList = arrayListOf(1,2,3)
    arrList[0] = 4
    arrList.add(9)

    for(i in arrList){
        println(i)
    }
}
4
2
3
9

変更と追加が確認できますね。


【何から学べばいいかわからない…そんな悩みを解決します!】

完全無料ですぐわかる「プログラミング学習プラン診断」

・適性にあわせて学習プランを診断
・完全無料で気軽に診断できる
・学習の悩みもまるっと解決

さっそく診断してみる

まとめ

本日は、KotlinのListやその他の配列について詳しく説明していきました。

用途にあったものを使えるようになると、メモリ効率もいいですしバグを未然に防げるのでぜひマスターしておきましょう!

プログラミング学習中、
誰かへ相談したいことはありませんか?

SAMURAI TERAKOYA

プログラミングはエラーの連続。作業を進めるなかで誰かに教えてほしい場面は多いですよね。

そんな悩みを解決できるのが、侍テラコヤです。登録無料で始められて、現役エンジニアとオンラインで相談できるほか、回答率100%のQA掲示版でプログラミングに関する悩みを解決します!

気になる方はぜひ詳細をご覧ください。

→侍テラコヤの詳細をみる

Writer

かい

日向徹かこよすぎか

kaikaikai8217@gmail.com

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI TERAKOYA

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら
Close