Koleksi Scala - Set

Scala Set adalah kumpulan elemen berbeda berpasangan dari jenis yang sama. Dengan kata lain, Set adalah kumpulan yang tidak berisi elemen duplikat. Ada dua jenis Set, yaituimmutable dan mutable. Perbedaan antara objek yang dapat berubah dan objek yang tidak dapat diubah adalah bahwa ketika sebuah objek tidak dapat diubah, objek itu sendiri tidak dapat diubah.

Secara default, Scala menggunakan Set yang tidak dapat diubah. Jika Anda ingin menggunakan Set yang bisa berubah, Anda harus mengimporscala.collection.mutable.Setkelas secara eksplisit. Jika Anda ingin menggunakan kumpulan yang tidak dapat diubah dan yang tidak dapat diubah dalam koleksi yang sama, Anda dapat terus merujuk ke Set yang tidak dapat diubah sebagaiSet tapi Anda bisa merujuk ke Set yang bisa berubah sebagai mutable.Set.

Inilah cara Anda mendeklarasikan Set yang tidak dapat diubah -

Sintaksis

// Empty set of integer type
var s : Set[Int] = Set()
// Set of integer type
var s : Set[Int] = Set(1,3,5,7)

or 

var s = Set(1,3,5,7)

Saat menentukan himpunan kosong, anotasi tipe diperlukan karena sistem perlu menetapkan tipe konkret ke variabel.

Operasi Dasar di set

Semua operasi pada set dapat diekspresikan dalam tiga metode berikut -

Sr Tidak Metode & Deskripsi
1

head

Metode ini mengembalikan elemen pertama dari satu set.

2

tail

Metode ini mengembalikan satu set yang terdiri dari semua elemen kecuali yang pertama.

3

isEmpty

Metode ini mengembalikan nilai true jika set kosong jika tidak salah.

Coba contoh berikut yang menunjukkan penggunaan metode operasional dasar -

Contoh

object Demo {
   def main(args: Array[String]) {
      val fruit = Set("apples", "oranges", "pears")
      val nums: Set[Int] = Set()
      println( "Head of fruit : " + fruit.head )
      println( "Tail of fruit : " + fruit.tail )
      println( "Check if fruit is empty : " + fruit.isEmpty )
      println( "Check if nums is empty : " + nums.isEmpty )
   }
}

Simpan program di atas dalam Demo.scala. Perintah berikut digunakan untuk mengkompilasi dan menjalankan program ini.

Perintah

\>scalac Demo.scala
\>scala Demo

Keluaran

Head of fruit : apples
Tail of fruit : Set(oranges, pears)
Check if fruit is empty : false
Check if nums is empty : true

Set Penggabungan

Anda bisa menggunakan keduanya ++ operator atau Set.++() metode untuk menggabungkan dua atau lebih set, tetapi sambil menambahkan set itu akan menghapus elemen duplikat.

Berikut adalah contoh untuk menggabungkan dua set.

Contoh

object Demo {
   def main(args: Array[String]) {
      val fruit1 = Set("apples", "oranges", "pears")
      val fruit2 = Set("mangoes", "banana")
      // use two or more sets with ++ as operator
      var fruit = fruit1 ++ fruit2
      println( "fruit1 ++ fruit2 : " + fruit )
      // use two sets with ++ as method
      fruit = fruit1.++(fruit2)
      println( "fruit1.++(fruit2) : " + fruit )
   }
}

Simpan program di atas dalam Demo.scala. Perintah berikut digunakan untuk mengkompilasi dan menjalankan program ini.

Perintah

\>scalac Demo.scala
\>scala Demo

Keluaran

fruit1 ++ fruit2 : Set(banana, apples, mangoes, pears, oranges)
fruit1.++(fruit2) : Set(banana, apples, mangoes, pears, oranges)

Temukan Max, Min Elements dalam satu Set

Kamu dapat memakai Set.min metode untuk mengetahui minimum dan Set.maxmetode untuk mengetahui maksimal elemen yang tersedia dalam satu set. Berikut adalah contoh untuk menampilkan program tersebut.

Contoh

object Demo {
   def main(args: Array[String]) {
      val num = Set(5,6,9,20,30,45)
      // find min and max of the elements
      println( "Min element in Set(5,6,9,20,30,45) : " + num.min )
      println( "Max element in Set(5,6,9,20,30,45) : " + num.max )
   }
}

Simpan program di atas dalam Demo.scala. Perintah berikut digunakan untuk mengkompilasi dan menjalankan program ini.

Perintah

\>scalac Demo.scala
\>scala Demo

Keluaran

Min element in Set(5,6,9,20,30,45) : 5
Max element in Set(5,6,9,20,30,45) : 45

Temukan Insets Common Values

Anda bisa menggunakan keduanya Set.& metode atau Set.intersectmetode untuk mengetahui nilai-nilai umum antara dua set. Coba contoh berikut untuk menunjukkan penggunaannya.

Contoh

object Demo {
   def main(args: Array[String]) {
      val num1 = Set(5,6,9,20,30,45)
      val num2 = Set(50,60,9,20,35,55)
      // find common elements between two sets
      println( "num1.&(num2) : " + num1.&(num2) )
      println( "num1.intersect(num2) : " + num1.intersect(num2) )
   }
}

Simpan program di atas dalam Demo.scala. Perintah berikut digunakan untuk mengkompilasi dan menjalankan program ini.

Perintah

\>scalac Demo.scala
\>scala Demo

Keluaran

num1.&(num2) : Set(20, 9)
num1.intersect(num2) : Set(20, 9)