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 ...
随机推荐
- css3+svg实现波浪图
<!DOCTYPE html> <html> <head> <meta charset=utf-8> <title>css+svg实现波浪图 ...
- PON
PON(Passive Optical Network:无源光纤网络). PON(无源光网络)是指(光配线网中)不含有任何电子器件及电子电源,ODN全部由光分路器(Splitter)等无源器件组成,不 ...
- shell 十进制数字转十六进制字符串并将结果保存到变量
. . . . . 今天写测试脚本的时候需要将生成的十六进制值作为参数传递给某个命令,而循环生成的数值都是十进制的.在网上查了好久也没有找到如何将一个变量中的值进行进制转换,并保存到变量中,网上的办法 ...
- 【Unity】微信支付SDK官方安卓Demo的使用问题
Unity3d使用微信支付是属于APP内发起支付调用的情况,其本质上是在安卓项目上使用微信SDK,安卓项目开发完成后再导入到Unity中作为Unity插件使用,即Unity中C#调用安卓(Java)代 ...
- 电子商务(电销)平台中订单模块(Order)数据库设计明细(转)
以下是自己在电子商务系统设计中的订单模块的数据库设计经验总结,而今发表出来一起分享,如有不当,欢迎跟帖讨论~ 订单表 (order)|-- 自动编号(order_id, 自增长主键)|-- 订单单号( ...
- [微信小程序] 通过快速启动demo分析小程序入门关键点
(1)小程序基础结构 下图是在开发者工具通过快速启动模式创建的小程序的目录结构 可以看到,小程序中主要包含有4中类型不同的文件 .json 后缀的 JSON 配置文件 .wxml 后缀的 WXML 模 ...
- 【转】Servlet 生命周期、工作原理
Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁. init():在Servlet的生命周期中,仅执行一次init()方法.它是在服务器装入Ser ...
- MySQL加密解密
1. 加密:mysql323,不可逆 select old_password('bbs.antian365.com'); # 10c886615b135b38 2. 加密:mysqlsha1,不可逆 ...
- 【netcore基础】ConcurrentDictionary 使用字符串作为key给代码加锁且使用EF事物防止并发调用数据混乱的问题
业务场景需要锁住指定的字符串下的代码,防止并发创建多个订单 这里我们使用 ConcurrentDictionary 首先初始化一个字典 private static readonly Concurre ...
- Chrome Google浏览器下载
https://support.google.com/chrome/answer/95346?co=GENIE.Platform%3DDesktop&hl=zh-Hans 下载和安装 G ...