大数据系列修炼-Scala课程40

论坛 期权论坛 脚本     
匿名技术用户   2020-12-23 17:25   64   0

大数据系列修炼-Scala课程40


核心内容:
1、Set、Map、TreeSet、TreeMap操作代码实战


1、Set、Map、TreeSet、TreeMap操作代码实战

1>在scala当中,对于集合而言,一般有可变集合与不可变集合。所谓可变集合就是每次操作都是作用于原有集合之上,例如当我们
向集合中追加一个元素时,原有集合就会新增加一个新的元素;所谓不可变集合即集合本身是不可变的,例如当我们向集合中追加
一个元素时,它本身会产生一个新的集合。
2>默认情况下,scala鼓励我们使用不可变对象进行编程,因此在头文件中默认引入的都是不可变的类对象,因此如果我们需要mutable类型的
类则需要引入相应的包
3>在Set集合与Map集合当中,元素放进去之后是没有顺序的,如果我们希望元素放进去之后是有顺序的,我们可以使用TreeSet与TreeMap,
因为凡是将类对象放到以Tree为内部存储结构的容器中,相应的类对象默认按照升序进行排序
4>凡是Java中自带的数据类型,相应的类都已经实现了Comparable接口中的compareTo方法
5>Scala中Set、Map、List存储结构的特点与Java中相同
6>scala集合当中常用的操作符:+= ++= -= –=


实例程序:

object App 
{   
     //本节的重点是掌握Set、TreeSet、TreeMap、Map的集合的用法
     def main(args:Array[String]):Unit=  
     {  
        import scala.collection.mutable.Set 
        //Set集合总不允许存放重复的元素,元素存放是无序的
        val data = Set[Int]()
        data +=4 
        data ++= List(10,20,30)
        data -=10
        data --= List(30)
        println(data)
        println(data.clear())

        //Map集合中不允许存放重复的键值Key,后面的value会覆盖掉前面的value
        import scala.collection.mutable.Map
        val map = Map[String,Double]()
        map += (("Hadoop",80.8))
        map += (("Spark",100.0))
        map += (("Spark",100.0))
        map += (("Spark",80.0))
        println(map.mkString("[","----","]"))
        println(map.apply("Hadoop"))
        println(map.apply("Spark"))

        //凡是将类对象放到以Tree为内部存储结构的容器中,相应的类对象默认按照升序进行排序
        //凡是Java中自带的数据类型,相应的类都已经实现了Comparable接口中的compareTo方法
        val treeSet = TreeSet(10,20,30,40,80,5)
        println(treeSet)
        treeSet += 1
        println(treeSet)
        val treeSet2 = TreeSet("Spark","Scala","Hadoop")
        println(treeSet2)

        val treeMap = TreeMap("Scala"->"Spark","Java"->"Hadoop")
        println(treeMap)
     }
}
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP