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 ...
随机推荐
- 飞鹅云打印 API_C#
飞鹅云打印: 提交订单支付成功后台自动打印,实现无人销售,自动打印,后台统计打印记录功能: 有自带WIFY:连接到wify就可以打印小票: 有自动SIM卡:第1年免流量费,第2年30一年 ...
- Android 8 蓝牙打开过程
packages\apps\Settings\src\com\android\settings\bluetooth\BluetoothEnabler.java @Override public boo ...
- Houdini 过程化地形系统(二):基于UE4的FC5植被系统(1)
背景 通过之前的几篇分析实践,已经基本打通了UE4的Houdini植被管线部分,并对Far Cry5(简称FC5)的植被系统的需求做了整理,在接下来的几节中,会关注于如何使用Houdini基于UE4来 ...
- Python实现AD域认证
Python 通过ldap进行ad域账号的校验. 首先需要安装python-ldap的模块 http://www.python-ldap.org/. 在这里用的是windows系统,当然比较容易,下载 ...
- miniprogrampatch 提供 watch 和 computed 特性
推荐一个小程序补丁 github:miniprogrampatch,为你的 Page 和 Component 增加 watch 和 computed 特性. 安装 通过 npm 安装:npm inst ...
- Inside The C++ Object Model(二)
============================================================================2-0. 关键字explicit被引入C++,提 ...
- MFMailComposeViewController发送邮件的实例
本文转载至 http://blog.csdn.net/liufeng520/article/details/7585140 iPhone API已经提供了系统写邮件界面的接口,使用MFMailCo ...
- Kylin如何进行JDBC方式访问或者调用
Kylin提供了标准的ODBC和JDBC接口,能够和传统BI工具进行很好的集成.分析师们可以用他们最熟悉的工具来享受Kylin带来的快速.我们也可以对它进行定制开发报表等,把kylin当做数据库服务器 ...
- 11.8Django中的组件content_type
2018-11-8 18:59:11 在Django中已经有一个contenttype这个组件,并且在python manage.py makemigrations 和migrate的时候,一起在数据 ...
- 使用nginx运行thinkphp的nginx配置
location / { index index.php; #如果文件不存在则尝试TP解析 if (!-e $request_filename) { rewrite ^(.*)$ /index.php ...