Kotlin - セット
公開日:2019-11-06 更新日:2019-11-06
[Kotlin]
1. 概要
セットの使い方についてです。
セットは複数の値を保持することができます。
単純な値の保持はリストを使い、集合による処理を行いたい場合はセットを使用します。
セットはリストと異なり、重複する値を保持できません。
セットは複数の値を保持することができます。
単純な値の保持はリストを使い、集合による処理を行いたい場合はセットを使用します。
セットはリストと異なり、重複する値を保持できません。
2. セットの生成
var set1 = setOf("a", "b", "c", "d", "e") // 要素の変更不可
var set2 = mutableSetOf("a", "b", "c", "d", "e") // 要素の変更可
var set3 = mutableSetOf<Int>(1, 2, 3) // 数値のみ設定可
重複する値は無視されます。
val set1 = mutableSetOf("a", "b", "c", "d", "a", "b")
println(set1) // [a, b, c, d]
3. 要素の有無の取得
セット(集合)に要素が含まれているか取得します。
val set1 = setOf("a", "b", "c")
println(set1.contains("a")) // true
println(set1.contains("A")) // false
println(set1.contains("Z")) // false
4. 要素の取得
リストのように [] でアクセスするとエラーになるので注意してください。
val set1 = setOf("a", "b", "c", "d")
//インデックスを指定して要素の取得
println(set1.elementAt(0)) // a
println(set1.elementAt(1)) // b
//println(set1[0]) // エラー
println(set1.elementAtOrNull(2)) // c
println(set1.elementAtOrNull(999)) // null
5. 要素の設定
既存の値を直接変更することはできません。
変更する場合は、既存の値を削除してから、新しい値を追加してください。
変更する場合は、既存の値を削除してから、新しい値を追加してください。
6. 要素の追加
要素を追加するには、add() または plus() を使用します。
add() は元のセットに追加され、plus() は元のセットには追加されずに、追加した新しいセットを返します。
add() は元のセットに追加され、plus() は元のセットには追加されずに、追加した新しいセットを返します。
val set1 = mutableSetOf("a", "b", "c")
set1.add("d")
set1.add("d") // 重複するため無視されます
set1.add("d") // 重複するため無視されます
println(set1) // [a, b, c, d]
val set1 = mutableSetOf("a", "b", "c")
val set2 = set1.plus("d")
println(set2) // [a, b, c, d]
println(set1) // [a, b, c] // 元のセットは影響を受けない
7. 要素の削除
要素を削除するには、remove() または minus() を使用します。
remove() は元のセットから削除され、minus() は元のセットからは削除されずに、削除した新しいセットを返します。
また、drop() でも削除できますが、drop() を使う必要がある場合は、セットではなく、リストを使った方が良いかもしれません。
remove() は元のセットから削除され、minus() は元のセットからは削除されずに、削除した新しいセットを返します。
また、drop() でも削除できますが、drop() を使う必要がある場合は、セットではなく、リストを使った方が良いかもしれません。
val set1 = mutableSetOf("a", "b", "c", "d", "e")
set1.remove("d")
set1.remove("e")
println(set1) // [a, b, c]
val set2 = set1.drop(2)
println(set2) // [c]
println(set1) // [a, b, c]
val set1 = mutableSetOf("a", "b", "c", "d", "e")
val set2 = set1.minus("e")
println(set2) // [a, b, c, d]
println(set1) // [a, b, c, d, e] // 元のセットは影響を受けない
8. 和集合
2つの集合の和を求めます。重複する値は1つになります。
val set1 = setOf("a", "b", "c", "d")
val set2 = setOf( "c", "d", "e", "f")
val set3 = set1 union set2
//val set3 = set1.union(set2) // 上記と同じ意味
println(set3) // [a, b, c, d, e, f]
9. 積集合
2つの集合の積(重複する値)を求めます。
val set1 = setOf("a", "b", "c", "d")
val set2 = setOf( "c", "d", "e", "f")
val set3 = set1 intersect set2
//val set3 = set1.intersect(set2) // 上記と同じ意味
println(set3) // [c, d]
10. 差集合
集合から集合を引きます。
val set1 = setOf("a", "b", "c", "d")
val set2 = setOf( "c", "d", "e", "f")
val set3 = set1 subtractset2
//val set3 = set1.subtract(set2) // 上記と同じ意味
println(set3) // [a, b]