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)