Ch04 映射和元组 - 练习
1. 设置一个映射,其中包含你想要的一些装备,以及它们的价格。然后构建另一个映射,采用同一组键,但在价格上打9折。
import scala.collection.JavaConversions.asScalaBufferimport scala.collection.mutable.Bufferimport java.awt.datatransfer._import java.util.TimeZoneobject App{ def main(args: Array[String]){ val a = Map("Mac Mini" -> 4988, "MacBook Air" -> 6288, "MacBook Pro" -> 8488) println(a.mkString("[",", ","]")) println("10% OFF") val b = for( (k,v) <- a ) yield (k, v * 0.9) println(b.mkString("[",", ","]")) }}/*result[Mac Mini -> 4988, MacBook Air -> 6288, MacBook Pro -> 8488]10% OFF[Mac Mini -> 4489.2, MacBook Air -> 5659.2, MacBook Pro -> 7639.2]*/object App{ def main(args: Array[String]){ val map = countWord("myfile.txt") println(map.mkString("[", ", ", "]")) } def countWord(filename:String)={ var words = Map[String, Int]() val in = new java.util.Scanner(new java.io.File("myfile.txt")) while(in.hasNext()){ var key = in.next() words += (key -> (words.getOrElse(key,0) + 1)) } words } }/*result*/object App{ def main(args: Array[String]){ val map = countWord("myfile.txt") println(map.mkString("[", ", ", "]")) } def countWord(filename:String)={ var words = scala.collection.immutable.SortedMap[String, Int]() val in = new java.util.Scanner(new java.io.File("myfile.txt")) while(in.hasNext()){ var key = in.next() words += (key -> (words.getOrElse(key,0) + 1)) } words } }/*result*/
import scala.collection.JavaConversions.mapAsScalaMapobject App{ def main(args: Array[String]){ val map = countWord("myfile.txt") println(map.mkString("[", ", ", "]")) } def countWord(filename:String)={ var words = new java.util.TreeMap[String, Int]() val in = new java.util.Scanner(new java.io.File("myfile.txt")) while(in.hasNext()){ var key = in.next() words += (key -> (words.getOrElse(key,0) + 1)) } words } }/*result*/ |
import scala.collection.JavaConversions.mapAsScalaMapobject App{ def main(args: Array[String]){ val map = weekday("myfile.txt") println(map.mkString("[", ", ", "]")) } def weekday(filename:String)={ var weekdays = new java.util.LinkedHashMap[String,Int]() weekdays("Monday") = java.util.Calendar.MONDAY weekdays("Tuesday") = java.util.Calendar.TUESDAY weekdays("Wednesday") = java.util.Calendar.WEDNESDAY weekdays("Thursday") = java.util.Calendar.THURSDAY weekdays("Friday") = java.util.Calendar.FRIDAY weekdays("Saturday") = java.util.Calendar.SATURDAY weekdays("Sunday") = java.util.Calendar.SUNDAY weekdays } }/*result[Monday -> 2, Tuesday -> 3, Wednesday -> 4, Thursday -> 5, Friday -> 6, Saturday -> 7, Sunday -> 1]*/import scala.collection.JavaConversions.propertiesAsScalaMapobject App{ def main(args: Array[String]){ printSystemProperties() } def printSystemProperties()={ val props: scala.collection.Map[String, String] = System.getProperties() var maxlen = 0 for((k,_) <- props) if(maxlen < k.length) maxlen = k.length maxlen += 1 for((k,v) <- props){ printf("%-" + maxlen.toString + "s | %s\n", k, v) } }}/*resultjava.vm.specification.version | 1.8sun.java.command | scala.tools.nsc.MainGenericRunner e4-7.scalajava.home | H:\ProgramFiles\Java\jdk1.8.0_25\jre...*/
object App{ def main(args: Array[String]){ val a = Array(1,2,3,4,5,6,7) val b = minmax(a) println(a.mkString("[",", ","]")) println(b) } def minmax(values: Array[Int])={ (values.min,values.max) }}/*result[1, 2, 3, 4, 5, 6, 7](1,7)*/object App{ def main(args: Array[String]){ val a = Array(1,2,3,4,5,6,7) val b = lteqgt(a, 4) println(a.mkString("[",", ","]")) println(b) } def lteqgt(values: Array[Int], v: Int)={ val lt = values.count(_ < v) val eq = values.count(_ == v) val gt = values.count(_ > v) (lt, eq, gt) }}/*result[1, 2, 3, 4, 5, 6, 7](3,1,3)*/
object App{ def main(args: Array[String]){ val a = zip("Hello", "World") println(a) //println(a.mkString("[",", ","]")) } def zip(s1:String, s2:String)={ val a = s1.zip(s2) a }}/*resultVector((H,W), (e,o), (l,r), (l,l), (o,d))*/ |
Ch04 映射和元组 - 练习的更多相关文章
- 快学Scala-第四章 映射和元组
知识点: 1.构造映射,映射是对偶的集合 val scores1 = Map("Alice" -> 10, "Bob" -> 7, "Ci ...
- Scala学习(四)---映射和元组
映射和元组 摘要: 一个经典的程序员名言是:"如果只能有一种数据结构,那就用哈希表吧".哈希表或者更笼统地说映射,是最灵活多变的数据结构之一.映射是键/值对偶的集合.Scala有一个通用的叫法:元组, ...
- 快学Scala习题解答—第四章 映射和元组
4 映射和元组 4.1 设置一个映射,当中包括你想要的一些装备,以及它们的价格.然后构建还有一个映射.採用同一组键,可是价格上打9折 映射的简单操作 ,"gun"->18 ...
- 【scala】 scala 映射和元组操作(四)
1.映射 Map 定义 ,取值,遍历,排序 2. 元组 定义,取值,拉链操作 import scala.collection.mutable /** * 映射和元组 * * @author xwol ...
- Scala的映射和元组操作
映射和元组操作 构造Map // 构造一个不可变的MAP映射,类似与key -> value这样的组合叫做对偶 val score = Map("Jack" -> 12 ...
- Scala从入门到放弃(三)Scala的数组、映射、元组和集合
1.数组 1.1定长数组和变长数组 object ArrayDemo { def main(args: Array[String]): Unit = { //初始化一个长度为8的定长数组,其数组元素均 ...
- 学好Spark/Kafka必须要掌握的Scala技术点(一)变量、表达式、循环、Option、方法和函数,数组、映射、元组、集合
前言 Scala是以JVM为运行环境的面向对象的函数式编程语言,它可以直接访问Java类库并且与Java框架进行交互操作.正如之前所介绍,Spark是用Scala语言编写的,Kafka server端 ...
- Scala:映射和元组
映射是键值对偶的集合.Scala有一个通用的叫法——元组:n个对象的聚集,并不一定要相同的类型. 构造映射 键A -> 值B scala> val scores = Map()//不可变映 ...
- 《快学Scala》——数组、映射和元组
数组 定长数组:在Scala中可以用Array,初始化一个定长数组.例如: val nums = new Array[Int](10) //10个整数的数组,所有元素初始化为0 val a = new ...
随机推荐
- Git操作自动触发企业微信机器人webhook
[本文出自天外归云的博客园] 背景 在git做一些merge或push的操作,我们希望可以自动在企业微信群发送自定义的通知. 服务代码 这里选用php作为网络服务的开发语言,关键的代码如下(githo ...
- Linux系统盘扩容-物理机非虚拟机
# Linux系统盘扩容 ## 了解磁盘分区情况 - `blkid` 查看分区情况- `fdisk -l` 分区表 ## 系统挂载分区 - `/etc/fstab` 启动挂载分区情况 ## 双系统下分 ...
- Hlacon 之Image ,Region,XLD
一 读取的3种方式: read_image( image,'filename') //image 是输出对象,后面是输入文件的路径和名称 读取多图: 1,申明一个数组,分别保存路径 ImagePath ...
- 【QT】二进制读取图像文件测试
QDataStream in(&file); int n; in >> n ; file.close(); qDebug() << n<<"en& ...
- Inside The C++ Object Model(三)
============================================================================3-0. 类所占的内存大小受到三个因素的影响:( ...
- 【thinkphp5】安全建议:隐藏后台登录入口地址
我们都知道后台 www.test.com/admin 是我们最常用的登录入口,方便的同时也留下了隐患,如果你刚好使用了 admin/ 这种账号密码的方式,会导致我们的后台完全暴露在外. 因此我们建 ...
- NodeJs使用nodejs-websocket + protobuf
参考: HTML5+NodeJs实现WebSocket即时通讯 (某人的blog) nodejs-websocket使用示例 (www.npmjs.com网站,有示例) Buffer API (nod ...
- 命令行部署SharePoint2016离线前提条件和添加服务器的Feature
前言 Sp2016的软件环境要求如下: 服务器场中的数据库服务器的最低要求: 以下各项之一: Microsoft SQL Server 2014 Service Pack 1 (SP1) 的 64 位 ...
- Vue2.0 $set()的正确使用方式
https://blog.csdn.net/panyang01/article/details/76665448
- FZU 2150 fire game (bfs)
Problem 2150 Fire Game Accept: 2133 Submit: 7494Time Limit: 1000 mSec Memory Limit : 32768 KB ...