Scala教程
Scala面向对象
Scala高级

Scala Set

Scala Set

用于存储集合中的唯一元素。它不维护任何存储元素的顺序。您可以对它们应用各种操作。它在 Scala.collection.immutable 包中定义。

Scala 集合语法

val variableName:Set[Type] = Set(element1, element2,... elementN) or
val variableName = Set(element1, element2,... elementN)

Scala Set Example

在这个例子中,我们创建了一个集合。您也可以创建一个空集。让我们看看如何创建一个集合。
import scala.collection.immutable._
object MainObject{
    def main(args:Array[String]){
        val set1 = Set()    						// An empty set
        val games = Set("Cricket","Football","Hocky","Golf") 	// Creating a set with elements
        println(set1)
        println(games)
    }
}
输出:
Set()	// an empty set
Set(Cricket,Football,Hocky,Golf)

Scala Set 示例 2

在 Scala 中,Set 提供了一些预定义的属性来获取有关 set 的信息。您可以获得 Set 的第一个或最后一个元素等等。让我们看一个例子。
import scala.collection.immutable._
object MainObject{
        def main(args:Array[String]){
            val games = Set("Cricket","Football","Hocky","Golf")
            println(games.head)				// Returns first element present in the set
            println(games.tail)			// Returns all elements except first element.
            println(games.isEmpty)			// Returns either true or false
        }
    }
输出:
Cricket
Set(Football, Hocky, Golf)
false

Scala 集合示例: 合并两个集合

您可以将两个集合合并为一个集合。 Scala 提供了一种预定义的方法来合并集合。在这个例子中,++方法用于合并两个集合。
import scala.collection.immutable._
object MainObject{
        def main(args:Array[String]){
            val games = Set("Cricket","Football","Hocky","Golf")
            val alphabet = Set("A","B","C","D","E") 
            val mergeSet = games ++ alphabet			// Merging two sets
            println("Elements in games set: "+games.size)	// return size of collection
            println("Elements in alphabet set: "+alphabet.size)	
            println("Elements in mergeSet: "+mergeSet.size)
            println(mergeSet)
        }
    }
输出:
Elements in games set: 4
Elements in alphabet set: 5
Elements in mergeSet: 9
Set(E, Football, Golf, Hocky, A, B, C, Cricket, D)
这个例子也证明了合并集不维护元素存储顺序。

Scala Set Example 2

您可以检查元素是否存在于集合中。下面的例子描述了 contains() 方法的使用。
import scala.collection.immutable._
object MainObject{
        def main(args:Array[String]){
            val games = Set("Cricket","Football","Hocky","Golf")
            println(games)
            println("Elements in set: "+games.size)
            println("Golf exists in the set : "+games.contains("Golf"))
            println("Racing exists in the set : "+games.contains("Racing"))
            
        }
    }
输出:
Set(Cricket, Football, Hocky, Golf)
Elements in set: 4
Golf exists in the set : true
Racing exists in the set : false

Scala 集合示例: 添加和删除元素

您可以从集合中添加或删除元素。您只能在代码可变时添加。在这个例子中,我们添加和删除集合的元素。
import scala.collection.immutable._
object MainObject{
        def main(args:Array[String]){
            var games = Set("Cricket","Football","Hocky","Golf")
            println(games)
            games += "Racing"       		// Adding new element
            println(games)
            games += "Cricket"           	// Adding new element, it does not allow duplicacy.
            println(games)
            games-= "Golf"     		// Removing element
            println(games)
        }
    }
输出:
Set(Cricket, Football, Hocky, Golf)
Set(Football, Golf, Hocky, Cricket, Racing)
Set(Football, Golf, Hocky, Cricket, Racing)
Set(Football, Hocky, Cricket, Racing)

Scala Set 示例: 使用 for 循环迭代 Set 元素

您可以使用 for 循环或 foreach 循环迭代 Set 元素。您还可以在迭代期间过滤元素。在这个例子中使用了 for 循环来迭代集合元素。
import scala.collection.immutable._
object MainObject{
        def main(args:Array[String]){
            var games = Set("Cricket","Football","Hocky","Golf")
            for(game <-games){
                println(game)
            }
        }
    }
输出:
Cricket
Football
Hocky
Golf

Scala Set 示例使用 foreach 循环迭代元素

在这个例子中,我们使用 foreach 循环来迭代 set 元素。
import scala.collection.immutable._
    object MainObject{
        def main(args:Array[String]){
            var games = Set("Cricket","Football","Hocky","Golf")
            games.foreach((element:String)=> println(element))
        }   
}
输出:
Cricket
Football
Hocky
Golf

Scala 集合示例: 集合运算

在 Scala 集合中,您还可以使用典型的数学运算,例如: 交集和并集。在下面的例子中,我们使用了预定义的方法来执行集合操作。
import scala.collection.immutable._
object MainObject{
    def main(args:Array[String]){
        var games = Set("Cricket","Football","Hocky","Golf","C")
        var alphabet = Set("A","B","C","D","E","Golf")
        var setIntersection = games.intersect(alphabet)
        println("Intersection by using intersect method: "+setIntersection)
        println("Intersection by using & operator: "+(games & alphabet))
        var setUnion = games.union(alphabet)
        println(setUnion)
    }
}
输出:
Intersection by using intersect method: Set(Golf, C)
Intersection by using & operator: Set(Golf, C)
Set(E, Football, Golf, Hocky, A, B, C, Cricket, D)

Scala SortedSet

在 Scala 中,SortedSet 扩展了 Set trait 并提供了有序集合元素。当您想要在 Set 集合中排序元素时,它很有用。您也可以对整数值和字符串进行排序。
这是一个 trait,您可以应用在 traversable trait 和 Set trait 中定义的所有方法。

Scala SortedSet 示例

在下面的示例中,我们使用了 SortedSet 来存储整数元素。它在对元素排序后返回一个 Set。
import scala.collection.immutable.SortedSet            
object MainObject{
    def main(args:Array[String]){
        var numbers: SortedSet[Int] = SortedSet(5,8,1,2,9,6,4,7,2)
        numbers.foreach((element:Int)=> println(element))
    }   
}
输出:
1
2
4
5
6
7
8
9
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4