栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Scala 挑战练习题 day-04

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Scala 挑战练习题 day-04

​
//tuple二元组
object _05Demo {
    def main(args: Array[String]): Unit = {
        
        val t = (1,3,4,5,6)
        val t2 = Tuple5(1,3,4,5,6)
        //通过下_的方式获取数据
        println(t2._3)
        //可以通过 -> 快捷生成一个元组
        println("000"-> "python")
    }
}
​
​
import scala.collection.mutable
​
//Set:无序唯一
object _06Demo {
    def main(args: Array[String]): Unit = {
        //Set默认是一个不可变的集合
        val set:Set[Int] = Set(1,34,5,6,7,8,8,8,1,2)
        println(set)
        //会去掉重复的 结果Set(5, 1, 6, 2, 34, 7, 8)
​
        val list:List[Int] = List(1,34,5,6,7,8,8,8,1,2)
        //对无序可重复的List去重
        println(list.distinct)
        println(list.toSet)
        //结果    List(1, 34, 5, 6, 7, 8, 2)
        //Set(5, 1, 6, 2, 34, 7, 8)
​
        println(list.map(i=>i+1)) //List(2, 35, 6, 7, 8, 9, 9, 9, 2, 3)
​
        //可变参数
        val hashSet:mutable.HashSet[String] = new mutable.HashSet[String]()
​
        hashSet.add("python")
        hashSet += "scala"
        println(hashSet)
        //Set(python, scala)
​
        hashSet.remove("python")
        hashSet -=("scala")
        println(hashSet)
        //Set()
    }
}
​
​
import scala.collection.mutable
​
//map集合  key-value形式
object _07Demo {
    def main(args: Array[String]): Unit = {
​
        //定义一个不可变的map集合
        val map:Map[String,String] = Map("1"->"lisi")
        //通过key获取value
        println(map("1")) //key 不存在会报错   //lisi
        map.getOrElse("01","hello") //该方法key不存在会返回默认值hello
​
        println(map.keys)
        println(map.values)  //
​
        //遍历map nums是一个元组
        for (nums <- map) {
            val key: String = nums._1
            val value: String = nums._2
            println(key + "t" + value)
        }
​
        //kv也是元组
        map.foreach(kv=>{
            val key:String = kv._1
            val value:String = kv._2
​
            println(key+"t"+value)
​
        })
​
        
        val hashMap:mutable.HashMap[String,String] = new mutable.HashMap
        //增加元素
        hashMap.put("007","lisi")
        hashMap += "009"->"李四"
        println(hashMap)
​
        //获取元素
        hashMap.getOrElse("007","lisi")
        hashMap("009")
        println(hashMap)
    }
}
//lisi
//Set(1)
//MapLike(lisi)
//1 lisi
//1 lisi
//Map(007 -> lisi, 009 -> 李四)
//Map(007 -> lisi, 009 -> 李四)
​
import scala.io.Source
​
//单词
object _08Demo {
    def main(args: Array[String]): Unit = {
        //1.读取数据
        val lines: List[String] = Source.fromFile("D://input//words.txt").getLines().toList
​
        //2.flatmap函数展开单词
        val words:List[String] = lines.flatMap(line => line.split(" "))
​
        //3.按照单词分组
        //groupBY指定分组的列
        val kv: List[(String, List[String])] = words.groupBy(word => word).toList
​
​
        //统计每个单词的个数
        val sum:List[(String,Int)] = kv.map(kv => {
            val key:String = kv._1
            val value:List[String] = kv._2
            //统计数量
            val size:Int = value.size
            (key,size)
        })
        sum.foreach(println)
        println("="*100)
​
        //排序方法 soreBy 默认的是升序(s=> -s._2)
        //使用降序方法
        val sort:List[(String,Int)] = sum.sortBy(s=> -s._2)
        sort.foreach(println)
        println("+"*100)
​
        //进行链式调用 在一行中实现
        Source
          .fromFile("D://input//words.txt")//读取文件
          .getLines()//获取所有行
          .toList//转换成list
          .flatMap(line=>line.split(","))//将数据展开
          .groupBy(word=>word)//按单词分组
          .toList
          .map(kv=>(kv._1,kv._1.size))//统计每个单词的数量
          .foreach(println)
    }
}
//(world,1)
//(java,1)
//(spark,2)
//(scala,1)
//(hello,5)
//====================================================================================================
//(hello,5)
//(spark,2)
//(world,1)
//(java,1)
//(scala,1)
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//(hello java,10)
//(hello spark,11)
//(hello scala,11)
//(hello world,11)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/332288.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号