公開日:2020/02/04更新日:2020/08/03
【Kotlin基礎】KotlinでListを使う方法を解説

- KotlinでListはどうやって使うの?
- Listの便利な使用法が知りたい。
こんな悩みをお持ちの方、いらっしゃいませんか?
本記事では、Listの基本的な使い方から、Listをループさせる方法や、Listの中身の並び替えなど、実際に開発で使用するような内容にそって解説しております。
目次
KotlinでListを使う方法
Listの基本的な使い方
まずは、Listがどういったものなのかを解説致します。
Listは変数などをまとめて管理することができる入れ物です。Listという名前からも想像できるように、並べて管理するイメージです。音楽のプレイリストのようなものでしょうか。
試しに、嵐のプレイリストをListで作成(正式には宣言という)すると、以下のようになります。
- Kotlin
- Java
val playList = listOf("Love so sweet", "One Love", "A・RA・SHI", "Happiness", "Monster")
List playList = Arrays.asList("Love so sweet", "One Love", "A・RA・SHI", "Happiness", "Monster");
listOf()関数で、Listを宣言することができます。また、Kotlinでは推論型が可能なので、Stringの明記を省略することができます。
これで、5曲のプレイリストが出来上がりました。続いて、プレイリストの曲を参照する方法を紹介致します。
- Kotlin
- Java
val playList = listOf("Love so sweet", "One Love", "A・RA・SHI", "Happiness", "Monster")
println(playList[0])
println(playList.get(3))
// Love so sweet
// Happiness
List playList = Arrays.asList("Love so sweet", "One Love", "A・RA・SHI", "Happiness", "Monster");
// System.out.println(playList[0]); できない
System.out.println(playList.get(3));
// Happiness
Listの要素を参照するには[番号]を使用する方法と、get(番号)を使用する方法の2通りがあります。
ここで注目していただきたいのは、プレイリストの1番目の”Love so sweet”を参照するのに、0を指定している所です。
Listや配列では、番号(index)は0から始まります。ですから、おのずと最後の”Monster”は、4番目ということになります。この事を忘れており、5番目だからとうっかりplayList[5]としてしまうと、「5番目なんてありません」とエラーとなってしまうので、注意が必要です。
【公式ドキュメント】 : List – Kotlin Programming Language
- Listの宣言には、listOf()関数を使用する
- Listの要素の取得は、list[番号]か、list.get(番号)を使用する
- Listの番号(index)は、0から始まる
Listの要素数を調べる方法
Listの要素数を調べるには、sizeを使用する方法と、count()を使用する方法の2通りがあります。
先ほどの嵐のプレイリストのサイズを調べてみましょう。
- Kotlin
- Java
val playList = listOf("Love so sweet", "One Love", "A・RA・SHI", "Happiness", "Monster")
println(playList.size)
println(playList.count())
// 5
// 5
List playList = Arrays.asList("Love so sweet", "One Love", "A・RA・SHI", "Happiness", "Monster");
System.out.println(playList.size());
// 5
また、Listの要素が空かどうかを調べるには、isEmpty()を使用します。
- Kotlin
- Java
val playList1 = listOf("Love so sweet", "One Love", "A・RA・SHI", "Happiness", "Monster")
println(playList1.isEmpty())
val playList2 = listOf()
println(playList2.isEmpty())
// false
// true
List playList1 = Arrays.asList("Love so sweet", "One Love", "A・RA・SHI", "Happiness", "Monster");
System.out.println(playList1.isEmpty());
List playList2 = Arrays.asList();
System.out.println(playList2.isEmpty());
// false
// true
なお、空のListを作成する場合は、何の型なのかを推論することができないので、型の明記が必要となります。
- list.size、またはlist.count()で、Listの要素数を調べることができる
- list.isEmpty()で、Listが空かどうかを調べることができる
Listをループさせる方法
続いて、Listをループさせる方法についてです。
以下は、forとforEachでListをループさせるサンプルコードです。
- Kotlin
- Java
val playList = listOf("Love so sweet", "One Love", "A・RA・SHI", "Happiness", "Monster")
for (song in playList) {
println(song)
}
playList.forEach {
println(it)
}
// Love so sweet
// One Love
// A・RA・SHI
// Happiness
// Monster
// Love so sweet
// One Love
// A・RA・SHI
// Happiness
// Monster
List playList = Arrays.asList("Love so sweet", "One Love", "A・RA・SHI", "Happiness", "Monster");
for (String song : playList) {
System.out.println(song);
}
// forEachはない
// Love so sweet
// One Love
// A・RA・SHI
// Happiness
// Monster
for及びforEachについての詳しい解説は、以下の記事にまとめておりますので、そちらもあわせてご覧ください。
要素がListに含まれているかを確認する方法
要素がListに含まれているかを確認するには、contains()を使用します。
以下は、”A・RA・SHI”と”サクラ咲け”の2つの曲がプレイリストに含まれているかを確認するサンプルコードです。
- Kotlin
- Java
val playList = listOf("Love so sweet", "One Love", "A・RA・SHI", "Happiness", "Monster")
println(playList.contains("A・RA・SHI"))
println(playList.contains("サクラ咲け"))
// true
// false
List playList = Arrays.asList("Love so sweet", "One Love", "A・RA・SHI", "Happiness", "Monster");
System.out.println(playList.contains("A・RA・SHI"));
System.out.println(playList.contains("サクラ咲け"));
// true
// false
また、2つ以上の要素をまとめて確認する場合は、確認したい要素達をListにし、containsAll()で確認することができます。
- Kotlin
- Java
val playList1 = listOf("Love so sweet", "One Love", "A・RA・SHI", "Happiness", "Monster")
val playList2 = listOf("Love so sweet", "A・RA・SHI")
val playList3 = listOf("Love so sweet", "サクラ咲け")
println(playList1.containsAll(playList2))
println(playList1.containsAll(playList3))
// true
// false
List playList1 = Arrays.asList("Love so sweet", "One Love", "A・RA・SHI", "Happiness", "Monster");
List playList2 = Arrays.asList("Love so sweet", "A・RA・SHI");
List playList3 = Arrays.asList("Love so sweet", "サクラ咲け");
System.out.println(playList1.containsAll(playList2));
System.out.println(playList1.containsAll(playList3));
// true
// false
- list.contains()で、要素が含まれているかを調べることができる
- list.containsAll()で、Listにした要素達が含まれているかを調べることができる
Listの要素を並び替える方法
最後に、Listの要素を並び替える方法を解説致します。
まず最初に、Listを昇順に並び替える方法です。Listを昇順に並び替えるには、sorted()を使用します。
- Kotlin
- Java
val playList = listOf("Love so sweet", "One Love", "A・RA・SHI", "Happiness", "Monster")
val sortedPlayList = playList.sorted()
for (song in sortedPlayList) {
println(song)
}
// A・RA・SHI
// Happiness
// Love so sweet
// Monster
// One Love
List playList = Arrays.asList("Love so sweet", "One Love", "A・RA・SHI", "Happiness", "Monster");
Collections.sort(playList);
for (String song : playList) {
System.out.println(song);
}
// A・RA・SHI
// Happiness
// Love so sweet
// Monster
// One Love
続いて、Listを逆順に並び替える方法です。Listを逆順に並び替えるには、reversed()を使用します。
- Kotlin
- Java
val playList = listOf("Love so sweet", "One Love", "A・RA・SHI", "Happiness", "Monster")
val sortedPlayList = playList.reversed()
for (song in sortedPlayList) {
println(song)
}
// Monster
// Happiness
// A・RA・SHI
// One Love
// Love so sweet
List playList = Arrays.asList("Love so sweet", "One Love", "A・RA・SHI", "Happiness", "Monster");
Collections.reverse(playList);
for (String song : playList) {
System.out.println(song);
}
// Monster
// Happiness
// A・RA・SHI
// One Love
// Love so sweet
注意して欲しいのは、sorted()やreversed()は、並び替えた結果を返すだけで、元のList自体を並び替えるわけではないということです。
サンプルコードでは、sortedPlayListには、並び替えた状態が反映されておりますが、playListは、並び替えられる前の状態のままです。
- list.sorted()で、昇順に並び替えた結果を返すことができる
- list.reversed()で、逆順に並び替えた結果を返すことができる
まとめ
- Listの宣言には、listOf()関数を使用する
- Listの要素の取得は、list[番号]か、list.get(番号)を使用する
- Listの番号(index)は、0から始まる
- list.size、またはlist.count()で、Listの要素数を調べることができる
- list.isEmpty()で、Listが空かどうかを調べることができる
- list.contains()で、要素が含まれているかを調べることができる
- list.containsAll()で、Listにした要素達が含まれているかを調べることができる
- list.sorted()で、昇順に並び替えた結果を返すことができる
- list.reversed()で、逆順に並び替えた結果を返すことができる
関連記事