DEV Community

kaede
kaede

Posted on

Kotlin 基礎 Part 4 -- List と Set の違いと相互変換

why

set というものが有るのを知った

Collection

https://kotlinlang.org/docs/collections-overview.html#collection

List 系の頂点に立つもの。
List や Set はこれを継承して作られるらしい。

抽象クラスのような直接は使えないものとして解釈する。


List

https://www.udemy.com/course/kotlinmasterclass/learn/lecture/16627334#overview

普通の配列。 0 から n-1 の順番にはいっている。

 val numbers = listOf(1,2,2) println(numbers) println(numbers[0]) 
Enter fullscreen mode Exit fullscreen mode

[1, 2, 2]
1

listof() の中に書くと作れる。
中身に重複したものがあっても一つにならない。
n-1 つ目として index でアクセスできる。

 println(listOf(1,2,3,) == listOf(3,2,1,)) 
Enter fullscreen mode Exit fullscreen mode

false

順番が違うと違う配列として扱われる。


set

https://www.udemy.com/course/kotlinmasterclass/learn/lecture/16627334#overview

重複不可。順番がない。
シャッフルしたあとのトランプのカードデッキのようなものらしい。

 val numbers = setOf(1,2,2) println(numbers) 
Enter fullscreen mode Exit fullscreen mode

[1, 2]

setof で作成できる。
自動的に重複が削除される
index でアクセスするとエラーになる。

 println(setOf(1,2,3,) == setOf(3,2,1,)) 
Enter fullscreen mode Exit fullscreen mode

true

順番が違っても中身が同じなら同じものとして扱われる。


List から Set への変換

https://pouhon.net/kotlin-set/1422/

 println(listOf(1,2,2,).toSet()) 
Enter fullscreen mode Exit fullscreen mode

[1, 2]

.toSet でリストをセットに変換できる。

 val setToList = setOf(1,2,2,).toList() println(setToList[0]) 
Enter fullscreen mode Exit fullscreen mode

1

.toList で逆にセットもリストに変換できる。

Top comments (0)