文档章节

scala基础篇-数组和映射

R
 RogerIs谭纶
发布于 2015/02/22 01:31
字数 387
阅读 147
收藏 4

####定长数组

val n = new Array[Int](10) //初始化
val s = new Array[String](10) //初始化
val a = Array("hello", "world") //Array[String]
val b = Array(1,2) //Array[Int]
val c = Array(1,2,"a","b") //Array[Any]

####变长数组

import scala.collection.mutable.ArrayBuffer
val b = new ArrayBuffer[Int]()
b += 1
b += (2,3)
b ++= Array(4,5)

经常我们需要一个数组Array,但是初期不知道装多少元素,这种情况下,可以先构造ArrayBuffer,然后调用toArray方法。 ####遍历数组或数组缓冲

for(i <- 0 until b.length)
    println(i)
for(i <- 0 until 5) #不含5
    println(i)
for(i<- 0 to 4)#包含4
    println(i)

以上三个循环达到的效果是一样的。 ####映射 一个经典的程序员名言,“如果只能有一种数据结构,那就用哈希表吧。” Scala的哈希表,即映射。

val scores0 = new scala.collection.mutable.HashMap[String, Int] //初始化空的映射
val scores1 = Map("Alice" -> 10, "Bob" -> 20, "Cindy" -> 30) //不可变的映射集合
val scores2 = scala.collection.mutable.Map("Alice" -> 10, "Bob" -> 20) //可变的映射集合

scala>scores1 += ("John" -> 40)
scala>error: value += is not a member of scala.collection.immutable.Map[String,Int]
scala>scores2 += ("John" -> 40)

注意:Map是不可变集合对象,scores1是不可变的变量,作用是不一样的。

scores1("Bob") 
socres1.getOrElse("Bob", 0)
scores1.contains("Bob")
for((k,v) <- scores1) {
  println("k:"+k)
  println("v:"+v)
}
for(v <- socres1) println(v)
for(v <- socres1.values) println(v)

####元组 元组不同于映射(Map),它是在不使用类的前提下,将多个元素组合成一组(一个逻辑集合)。

val t= (1, "a")

元组可以很好地与模式匹配相结合(?待体会)

© 著作权归作者所有

共有 人打赏支持
R
粉丝 2
博文 7
码字总数 2584
作品 0
西安
高级程序员
Scala基础入门-3

学习Scala——映射和元组 映射和和元组,也就是Maps和Tuples。Map这东西应该都挺明白的,就是键值对的集合。而元组,tuple,这东西并不是每个语言都有(Python中是有的,不过当时学的时候没有...

wei-spring
2015/11/11
0
0
Scala笔记整理(二):Scala数据结构—数组、map与tuple

[TOC] 数组 定长数组 如果你需要一个长度不变的数组,可以用Scala中的Array。例如: 在JVM中,Scala的Array以Java数组方式实现。示例中的数组在JVM中的类型为java.lang.String[]。Int、Doubl...

xpleaf
04/18
0
0
Scala学习(四)映射和元组

1.构造映射 映射其实就是Map,Scala中映射分为可变映射和不可变映射。 不可变映射其值不能改变,构造方式如下: 从上面我们可以看到,当我们尝试去改变不可变映射的值时,报错了。并且这里注...

我爱春天的毛毛雨
09/30
0
0
Scala简单编程

1. Scala简单概述 Scala是多范式编程语言,其设计的初衷是要集成面向对象编程和函数式编程以及各种特性. 需要说明的一点是: Scala是基于java平台(JVM) ,并兼容现有的Java程序 下面是Scala官方...

得失与否
01/01
0
0
第四章 映射和元组

1、设置映射,其中包含你想要的一些装备,以及他们的价格。然后构建另外一个映射,采用同一组键,但在价格上打9折 2、编写一段程序,从文件中读取单词。用一个可变映射来清点每一个单词出现的...

小萝卜_
2016/06/14
7
0

没有更多内容

加载失败,请刷新页面

加载更多

RESTful架构详解

1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主...

kitty1116
7分钟前
0
0
精通Spring Boot——第十篇:Quartz动态配置定时任务

定时任务简述 定时任务,在企业开发中尤其重要,很多业务都是需要定时任务去做的。比如说10点开售某件东西,凌晨0点统计注册人数,统计其他各种等等。这个时候不可能说让人为的去开启某个开关...

developlee的潇洒人生
10分钟前
0
0
将一些内容输出到文件中

看到一个面试题,如下: 第八题: 一个字符串将其输入到一个文件中,代码如下: <?php$a = '[{"teamId": "43", "serial": "1"},{"teamId": "1", "serial": "2"},{"teamId": "14", "serial":...

vinci321
18分钟前
0
0
nginx的简单使用:负载均衡

nginx:反向代理的服务器;用户发送请求到nginx,nginx把请求发送给真正的服务器,等待服务器处理完数据并返回,再把数据发送给用户。 nginx作为一个反向代理服务器,能缓存我们项目的静态文...

osliang
今天
2
0
网站title标题被改并被百度网址安全中心提醒的解决办法

国庆假日期间我们Sine安全接到众多网站站长求助网站标题被改导致在百度搜索中百度安全中心提醒被拦截,导致网站正常用户无法浏览网站被跳转到一些菠菜du博网站,而且很明显的一个特征就是在百...

网站安全
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部