Scala
set
(collection) is a collection of objects without repetition, and all elements are unique.
Scala collections are divided into mutable and immutable collections.
By default, Scala uses immutable collections, and if you want to use mutablecollections, you need to refer to
scala.collection.mutable.Set
Bag.
Default reference If you need to use a variable collection, you need to introduce Note: although variable The Scala collection has three basic operations: Any operation on the Scala collection can be expressed using these three basic operations. Examples are as follows: Execute the above code, and the output is as follows: You can use it. Execute the above code, and the output is as follows: You can use it. Execute the above code, and the output is as follows: You can use it. Execute the above code, and the output is as follows: The following table lists the Scala Serial number Method and description 1 Def + (elem: a): Set [A] Add a new element to the collection, x, and create a new collection unless the element already exists 2 Def-(elem: a): Set [A] Remove elements from the collection and create a new collection 3 Def contains (elem: a): Boolean Returns true if the element exists in the collection, false otherwise. 4 Def & (that: Set [A] ): Set [A] Returns the intersection of two sets 5 Def & ~ (that: Set) [A] ): Set [A] Returns the difference between two sets 6 Def + (elem1: a, elem2: a, elems: A*): Set [A] Create a new immutable collection by adding elements passed in to the specified collection 7 Def + + (elems: a): Set [A] Merge two sets 8 Def-(elem1: a, elem2: a, elems: A*): Set [A] Creates a new immutable collection by removing elements passed into the specified collection 9 Def addString (b: StringBuilder): StringBuilder Add all elements of the immutable collection to the string buffer 10 Def addString (b: StringBuilder, sep: String): StringBuilder Adds all elements of the immutable collection to the string buffer and uses the specified delimiter 11 Def apply (elem: a) Detects whether the collection contains the specified element 12 Def count (p: (a) = > Boolean): Int Calculate the number of set elements that meet the specified conditions 13 Def copyToArray (xs: Array [A] , start: Int, len: Int): Unit Copy immutable collection elements to an array 14 Def diff (that: Set [A] ): Set [A] Compare the difference between two sets 15 Def drop (n: Int): Set [A] ] Returns a new collection of the first n elements discarded 16 Def dropRight (n: Int): Set [A] Returns a new collection of discarded last n elements 17 Def dropWhile (p: (a) = > Boolean): Set [A] Discard elements from left to right until condition p is not true 18 Def equals (that: Any): Boolean The equals method can be used for any sequence. Used to compare whether the series are equal. 19 Def exists (p: (a) = > Boolean): Boolean Determines whether the element of the specified condition exists in the immutable set. 20 Def filter (p: (a) = > Boolean): Set [A] Outputs all immutable collection elements that meet the specified criteria. 21 Def find (p: (a) = > Boolean): Option [A] Find the first element in an immutable set that meets the specified condition 22 Def forall (p: (a) = > Boolean): Boolean Finds whether the specified condition applies to all elements of this collection 23 Def foreach (f: (a) = > Unit): Unit Apply a function to all elements of an immutable set 24 Def head: A Get the first element of an immutable set 25 Def init: Set [A] Returns all elements except the last one 26 Def intersect (that: Set [A] ): Set [A] Calculate the intersection of two sets 27 Def isEmpty: Boolean Determine whether the collection is empty 28 Def iterator: Iterator [A] Create a new iterator to iterate over the element 29 Def last: A Returns the last element 30 Def map [B] (F: (a) = > B): immutable.Set [B] Recalculate all elements by a given method 31 Def max: A Find the largest element 32 Def min: A Find the smallest element 33 Def mkString: String All elements of the collection are displayed as strings 34 Def mkString (sep: String): String Use delimiters to display all elements of the collection as strings 35 Def product: A Returns the product of numeric elements in an immutable set. 36 Def size: Int Returns the number of immutable collection elements 37 Def splitAt (n: Int): (Set [A] , Set [A] ) Split the immutable set into two containers, the first consisting of the first n elements and the second consisting of the remaining elements 38 Def subsetOf (that: Set [A] ): Boolean Returns true if the collection contains a subset, false otherwise 39 Def sum: A Returns the sum of all numeric elements in an immutable set 40 Def tail: Set [A] Returns elements other than the first element in an immutable set 41 Def take (n: Int): Set [A] Return the first n elements 42 Def takeRight (n: Int): Set [A] Return the last n elements 43 Def toArray: Array [A] Convert a collection to an array 44 Def toBuffer [B >: A] : Buffer [B] Returns the buffer containing all the elements of the immutable set 45 Def toList: List [A] Returns List, which contains all the elements of the immutable set 46 Def toMap [T, U] : Map [T, U] Returns Map, which contains all the elements of the immutable set 47 Def toSeq: Seq [A] Returns Seq, which contains all the elements of the immutable set 48 Def toString (): String Returns a string represented by an object For more methods, please refer to the API documentation
scala.collection.immutable.Set
an example of an immutable collection is as follows: 8.31.1. Example #
val set = Set(1,2,3)
println(set.getClass.getName) //
println(set.exists(\_ % 2 == 0)) //true
println(set.drop(1)) //Set(2,3)
scala.collection.mutable.Set
: 8.31.2. Example #
import scala.collection.mutable.Set // Variable sets can be introduced anywhere
val mutableSet = Set(1,2,3)
println(mutableSet.getClass.getName) // scala.collection.mutable.HashSet
mutableSet.add(4)
mutableSet.remove(1)
mutableSet += 5
mutableSet -= 2
println(mutableSet) // Set(5, 3, 4)
val another = mutableSet.toSet
println(another.getClass.getName) // scala.collection.immutable.Set
set
and immutable.
set
has operations to add or remove elements, but there is a very big difference. Yes, immutable.
set
to perform the operation, a new
set
original
set
hasn’t changed, which has something to do with
List
same thing. While for variable,
set
to operate, the change is that the
set
in itself, with
ListBuffer
similar.Basic operation of collection #
head
returns the first element of the collection
tail
returns a collection containing elements other than the first element
isEmpty
returns when the collection is empty
true
8.31.3. Example #
object Test {
def main(args: Array[String]) {
val site = Set("Runoob", "Google", "Baidu")
val nums: Set[Int] = Set()
println( "The first website is: " + site.head )
println( "The last website is : " + site.tail )
println( "Check if the list site is empty : " + site.isEmpty )
println( "Check if nums is empty : " + nums.isEmpty )
}
}
$ vim Test.scala
$ scala Test.scala
The first website is : Runoob
The last website is : Set(Google, Baidu)
Check if the list site is empty : false
Check if nums is empty : true
Connection set #
++
operator or
Set.++()
method to connect two collections. If there is a duplicate element, the duplicate element will be removed. Examples are as follows: 8.31.4. Example #
object Test {
def main(args: Array[String]) {
val site1 = Set("Runoob", "Google", "Baidu")
val site2 = Set("Faceboook", "Taobao")
// ++ Used as an operator
var site = site1 ++ site2
println( "site1 ++ site2 : " + site )
// ++ Used as an method
site = site1.++(site2)
println( "site1.++(site2) : " + site )
}
}
$ vim Test.scala
$ scala Test.scala
site1 ++ site2 : Set(Faceboook, Taobao, Google, Baidu, Runoob)
site1.++(site2) : Set(Faceboook, Taobao, Google, Baidu, Runoob)
Find the largest and smallest elements in the collection #
Set.min
method to find the smallest element in the collection, using the
Set.max
method to find the largest element in thecollection. Examples are as follows: 8.31.5. Example #
object Test {
def main(args: Array[String]) {
val num = Set(5,6,9,20,30,45)
// Find the largest and smallest elements in a set
println( "Set(5,6,9,20,30,45) the smallest element is : " + num.min )
println( "Set(5,6,9,20,30,45) the smallest element is : " + num.max )
}
}
$ vim Test.scala
$ scala Test.scala
Set(5,6,9,20,30,45) the smallest element is : 5
Set(5,6,9,20,30,45) the smallest element is : 45
Intersection #
Set.&
method or
Set.intersect
method to view the intersection elements of two collections. Examples are as follows: 8.31.6. Example #
object Test {
def main(args: Array[String]) {
val num1 = Set(5,6,9,20,30,45)
val num2 = Set(50,60,9,20,35,55)
// intersection
println( "num1.&(num2) : " + num1.&(num2) )
println( "num1.intersect(num2) : " + num1.intersect(num2) )
}
}
$ vim Test.scala
$ scala Test.scala
num1.&(num2) : Set(20, 9)
num1.intersect(num2) : Set(20, 9)
Common methods of Scala Set #
Set
common methods: