Scala Koleksiyonları - Set

Scala Set, aynı türden ikili farklı öğelerden oluşan bir koleksiyondur. Başka bir deyişle, bir Set, yinelenen öğeler içermeyen bir koleksiyondur. İki tür Set vardır:immutable ve mutable. Değişken ve değişmez nesneler arasındaki fark, bir nesne değişmez olduğunda, nesnenin kendisinin değiştirilememesidir.

Scala varsayılan olarak değişmez Seti kullanır. Değiştirilebilir Seti kullanmak istiyorsanız, içe aktarmanız gerekecekscala.collection.mutable.Setsınıf açıkça. Aynı koleksiyonda hem değiştirilebilir hem de değişmez kümeler kullanmak istiyorsanız, değişmez Küme'ye şu şekilde başvurmaya devam edebilirsiniz:Set ancak değiştirilebilir Set'e şu şekilde başvurabilirsiniz: mutable.Set.

Değişmez Kümeleri nasıl ilan edeceğiniz aşağıda açıklanmıştır -

Sözdizimi

// 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)

Boş bir küme tanımlanırken, sistemin değişkene somut bir tip ataması gerektiğinden tip ek açıklaması gereklidir.

Sette Temel İşlemler

Setlerdeki tüm işlemler aşağıdaki üç yöntemle ifade edilebilir:

Sr.No Yöntemler ve Açıklama
1

head

Bu yöntem, bir kümenin ilk öğesini döndürür.

2

tail

Bu yöntem, ilki dışındaki tüm öğelerden oluşan bir küme döndürür.

3

isEmpty

Bu yöntem, set boşsa true, aksi takdirde false döndürür.

Temel işletim yöntemlerinin kullanımını gösteren aşağıdaki örneği deneyin -

Misal

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 )
   }
}

Yukarıdaki programı şuraya kaydedin: Demo.scala. Bu programı derlemek ve çalıştırmak için aşağıdaki komutlar kullanılır.

Komut

\>scalac Demo.scala
\>scala Demo

Çıktı

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

Birleştirme Setleri

İkisini de kullanabilirsiniz ++ operatör veya Set.++() iki veya daha fazla seti birleştirmek için yöntem, ancak kümeler eklerken yinelenen öğeleri kaldıracaktır.

Aşağıdaki, iki kümeyi birleştirme örneğidir.

Misal

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 )
   }
}

Yukarıdaki programı şuraya kaydedin: Demo.scala. Bu programı derlemek ve çalıştırmak için aşağıdaki komutlar kullanılır.

Komut

\>scalac Demo.scala
\>scala Demo

Çıktı

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

Bir Kümedeki Max, Min Elemanları Bul

Kullanabilirsiniz Set.min minimum bulma yöntemi ve Set.maxBir kümede bulunan maksimum eleman sayısını bulma yöntemi. Programı göstermek için örnek aşağıdadır.

Misal

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 )
   }
}

Yukarıdaki programı şuraya kaydedin: Demo.scala. Bu programı derlemek ve çalıştırmak için aşağıdaki komutlar kullanılır.

Komut

\>scalac Demo.scala
\>scala Demo

Çıktı

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

Ortak Değer Ekleri Bulun

İkisini de kullanabilirsiniz Set.& yöntem veya Set.intersectiki küme arasındaki ortak değerleri bulma yöntemi. Kullanımı göstermek için aşağıdaki örneği deneyin.

Misal

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) )
   }
}

Yukarıdaki programı şuraya kaydedin: Demo.scala. Bu programı derlemek ve çalıştırmak için aşağıdaki komutlar kullanılır.

Komut

\>scalac Demo.scala
\>scala Demo

Çıktı

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