文档章节

scala基础篇-数组和映射

R
 RogerIs谭纶
发布于 2015/02/22 01:31
字数 387
阅读 144
收藏 4
点赞 0
评论 0

####定长数组

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基础学习笔记

变量 类型 所有的Java原始类型在scala包里都有对应的类。 eg: scala.Boolean对应着Java的boolean。 scala.Float对应着Java的float。 当你把你的Scala代码编译成Java字节码,Scala编译器将使...

VitoHuang ⋅ 2015/10/28 ⋅ 0

Scala基础入门-3

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

wei-spring ⋅ 2015/11/11 ⋅ 0

Scala笔记整理(二):Scala数据结构—数组、map与tuple

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

xpleaf ⋅ 04/18 ⋅ 0

Scala简单编程

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

得失与否 ⋅ 01/01 ⋅ 0

scala学习笔记(三)

通过前面几天的基础学习,现在学习scala的映射感觉很简单,简单的说,scala可以很简单的创建、查询和遍历映射,scala有可变和不可变映射之分,下面一起来看看scala的映射到底是什么样的吧。 ...

xinyitianii ⋅ 2014/04/03 ⋅ 2

10个让朋友对你刮目相看的CoffeeScript单行代码绝技

或许你已经看过了Marcus Kazmierczak的这篇在HN上颇受欢迎的“10个让朋友对你刮目相看的Scala单行代码绝技”了, 尽管我对Scala并不了解(Java也是),但是这看起来还真不错,于是我也有点手...

justjavac ⋅ 2012/07/23 ⋅ 2

第四章 映射和元组

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

小萝卜_ ⋅ 2016/06/14 ⋅ 0

Scala和Java在多核处理性能的一次对比和思考

今天在网络上看到了一篇关于Scala和java多线程对比的文章《Simple Scala actor Vs java Thread Vs Kilim Test,原文链接:http://www.blogjava.net/BlueDavy/archive/2009/11/25/303662.html......

qinhui99 ⋅ 2012/05/13 ⋅ 3

快学Scala 第13章 集合 - 练习解答

编写一个函数,给定字符串,产出一个包含所有字符的下标的映射。举例来说:indexes("Mississippi")应返回一个映射,让'M'对应集{0},'i'对应集{1,4,7,10},依此类推。 使用字符到可变集的映射...

圣洁之子 ⋅ 2015/04/18 ⋅ 0

学习苹果Swift语言的一些在线资源(2014年9月10日更新)

Swift是苹果为OS X和iOS平台引入的一种新的程序设计语言,这种程序设计语言已经激发了开发者社区的大量关注。仅仅几天之内,在Stack Overflow网站上提出的关于Swift的问题已经有500多个,在G...

tyou ⋅ 2015/08/11 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

笔试题之Java基础部分【简】【一】

基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法,其他 1.length、length()和size() length针对...

anlve ⋅ 20分钟前 ⋅ 1

table eg

user_id user_name full_name 1 zhangsan 张三 2 lisi 李四 `` ™ [========] 2018-06-18 09:42:06 星期一½ gdsgagagagdsgasgagadsgdasgagsa...

qwfys ⋅ 45分钟前 ⋅ 0

一个有趣的Java问题

先来看看源码: public class TestDemo { public static void main(String[] args) { Integer a = 10; Integer b = 20; swap(a, b); System.out......

linxyz ⋅ 49分钟前 ⋅ 0

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 今天 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 8

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部