|
| 1 | +/* |
| 2 | + 1. Set is a companion object. |
| 3 | + 2. Set is Immutable object with duplicates not allowed, searchable |
| 4 | +*/ |
| 5 | + |
| 6 | +object Sets extends App |
| 7 | +{ |
| 8 | + val set = Set.apply(1,2,3,4) |
| 9 | + val set2 = Set(1,2,3,4,5) //You can not create a set using new because trait Set is abstract; cannot be instantiated |
| 10 | + val set3 = Set(1,2,4,3,4,5) |
| 11 | + val set4 = Set(1,2,3,4,5,6,6,7) |
| 12 | + val set5 = Set(1,2) |
| 13 | + |
| 14 | + println("set: " + set) |
| 15 | + println("set2: " + set2) |
| 16 | + println("set3: " + set3) |
| 17 | + println("set4: " + set4) |
| 18 | + |
| 19 | + //Set Operations |
| 20 | + println("set diff set4 : " + set.diff(set4)) //empty set |
| 21 | + println("set4.diff(set) :" + set4.diff(set)) //Set(5,6,7) |
| 22 | + println("set union set3 :" + set.union(set3)) //Set(1,2,3,4,5) |
| 23 | + println("set intersect set3 : " + set.intersect(set3)) //Set(1,2,3,4) |
| 24 | + println("set5 intersect set4 : " + set5.intersect(set4))//Set(1,2) |
| 25 | + |
| 26 | + //Set Union using ++ |
| 27 | + println("set ++ set2 : " + (set ++ set2)) //Set(1,2,3,4,5) |
| 28 | + |
| 29 | + //Adding elements from another List to Set |
| 30 | + println("set ++ List(15,19,20) : " + (set ++ List(15,19,20))) //Set(1,2,3,4,15,19,20) |
| 31 | + |
| 32 | + println("set -- set5 : " + (set -- set5)) //Set subtraction |
| 33 | + println("set - 3 : " + (set - 3)) //remove element 3 from set |
| 34 | + |
| 35 | + //Check if an element is present in set |
| 36 | + println("set.apply(4) : " + set.apply(4)) |
| 37 | + println("set.apply(10) : " + set.apply(10)) //apply method is mapped to contains method in set |
| 38 | + println("set.contains(10) : " + set.contains(10)) |
| 39 | +} |
| 40 | + |
| 41 | +/** |
| 42 | + Sample Output |
| 43 | +set: Set(1, 2, 3, 4) |
| 44 | +set2: Set(5, 1, 2, 3, 4) |
| 45 | +set3: Set(5, 1, 2, 3, 4) |
| 46 | +set4: Set(5, 1, 6, 2, 7, 3, 4) |
| 47 | +set diff set4 : Set() |
| 48 | +set4.diff(set) :Set(5, 6, 7) |
| 49 | +set union set3 :Set(5, 1, 2, 3, 4) |
| 50 | +set intersect set3 : Set(1, 2, 3, 4) |
| 51 | +set5 intersect set4 : Set(1, 2) |
| 52 | +set ++ set2 : Set(5, 1, 2, 3, 4) |
| 53 | +set ++ List(15,19,20) : Set(20, 1, 2, 3, 19, 4, 15) |
| 54 | +set -- set5 : Set(3, 4) |
| 55 | +set - 3 : Set(1, 2, 4) |
| 56 | +set.apply(4) : true |
| 57 | +set.apply(10) : false |
| 58 | +set.contains(10) : false |
| 59 | +
|
| 60 | +**/ |
0 commit comments