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)