Ch04 映射和元组 - 练习
1. 设置一个映射,其中包含你想要的一些装备,以及它们的价格。然后构建另一个映射,采用同一组键,但在价格上打9折。
import
scala.collection.JavaConversions.asScalaBuffer
import
scala.collection.mutable.Buffer
import
java.awt.datatransfer.
_
import
java.util.TimeZone
object
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.mapAsScalaMap object 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.mapAsScalaMap
object
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.propertiesAsScalaMap
object
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)
}
}
}
/*result
java.vm.specification.version | 1.8
sun.java.command | scala.tools.nsc.MainGenericRunner e4-7.scala
java.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(s 1 : String, s 2 : String) = { val a = s 1 .zip(s 2 ) a } } /*result Vector((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 ...
随机推荐
- cx_oracle访问处理oracle中文乱码问题
cx_oracle访问处理oracle中文乱码问题 问题描述 使用docker打包了centos镜像,编码为gbk,随后访问oracle出现了很多乱码.其原因自然是因为编码不一致,服务器为zhs16g ...
- ASP.NET MVC Web API 学习笔记---Web API概述及程序示例
1. Web API简单说明 近来很多大型的平台都公开了Web API.比如百度地图 Web API,做过地图相关的人都熟悉.公开服务这种方式可以使它易于与各种各样的设备和客户端平台集成功能,以及通过 ...
- 【C#】读取Excel中嵌套的Json对象,Json带斜杠的问题(其三)
除了上一篇中提到的对字符串的字符替换操作,去掉Json中的转义符反斜杠\之外,还发现了更加简单的办法. 就是使用Newtownsoft.Json序列化Json时,将嵌套的Json对象(字符串)转为JO ...
- pip 安装出现超时问题的解决
pip 安装出现超时问题的解决 我们在用默认的pip源进行安装python库时,会出现超时问题下载不了,如下图显示所示: 那么我们应该如何解决呢? 方法: 在自己电脑的 C:\Users\yanji ...
- bat搜集
1. 删除文件夹下指定名称的所有子文件夹 @echo off ::设置要保留的文件夹名,多个文件夹之间用英文逗号隔开,如果包含空格或英文逗号,英文&以及其它一些特殊字符的名字,请把该完整名字用 ...
- java 中 热部署与卸载关系
今天发现早年在大象笔记中写的一篇笔记,之前放在ijavaboy上的,现在它已经访问不了了.前几天又有同事在讨论这个问题.这里拿来分享一下. 在web应用开发或者游戏服务器开发的过程中,我们时时刻刻都在 ...
- 【Dubbo 源码解析】03_Dubbo Protocol&Filter
Protocol & Filter Dubbo 服务暴露和服务引用都是通过的 com.alibaba.dubbo.rpc.Protocol 来实现的.它是一个 SPI 扩展. @SPI(&qu ...
- Lock 从来就没有成功过
package lime.thinkingInJava._021._005._003; import java.util.concurrent.ExecutorService; import java ...
- Centos VMware 克隆后 网络配置
第一步:生产新的网卡地址,启动系统. 第二步:修改主机名(注:此处根据个人需要,不修改也行,此处我是用于搭建集群,修改主机名做区分) 执行命令:vi /etc/sysconfig/network 修改 ...
- Golang & GitLab-CI 详细实例步骤
1.安装GitLab-Runner 1)curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi- ...