IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Scala 挑战练习题 day-04 -> 正文阅读

[Java知识库]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)
?
 ? ? ?  })
?
 ? ? ? ?/*可变的map*/
 ? ? ? ?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)

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-18 17:15:46  更:2021-10-18 17:17:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:09:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码