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 ...
随机推荐
- vscode: Visual Studio Code 常用快捷键1
ctrl + pAlt + shift 多行编辑
- phpunit assert断言分类整理
布尔类型 方法名 含义 参数 返回值 assertTrue 断言为真 assertFalse 断言为假 NULL类型 方法名 含义 参数 返回值 assertNull 断言为NULL ...
- 给centos7.3添加中文拼音输入法输入汉字
https://jingyan.baidu.com/article/86f4a73eaa0a6337d6526985.html
- stl综合
区别: List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]. Vector ...
- Android 8 蓝牙 A2DP流程
记录一下蓝牙A2DP的流程 packages\apps\Settings\src\com\android\settings\bluetooth\BluetoothPairingDetail.java ...
- Angular4中路由Router类的跳转navigate
最近一直在学习angular4,它确实比以前有了很大的变化和改进,好多地方也不是那么容易就能理解,好在官方的文档和例子是中文,对英文不太好的还是有很大帮助去学习. 官方地址:https://angul ...
- SpringBoot 全配置(推荐收藏)
# =================================================================== # COMMON SPRING BOOT PROPERTIE ...
- Spring 注入枚举数组
在spring的配置文件xml中 示例: <!--注入枚举数組--> <bean id="writeMapNullValue" class="org.s ...
- 130、 Android OkHttp完全解析(转载)
完全解析:http://blog.csdn.net/lmj623565791/article/details/47911083 从原理角度解析http文件上传 http://blog.csdn.net ...
- vue.config.js
const path = require('path'); const vConsolePlugin = require('vconsole-webpack-plugin'); // 引入 移动端模拟 ...