从零开始学Scala系列(五)之集合2--Set和Map

本小节主要是scala中的Set和Map的使用

在scala中Array是mutable(可变的), 而List是immutable(不可变的) 
package.scala中的源码:

val List = scala.collection.immutable.List
   
   
  • 1

而Set和Map都有两种mutable和immutable的 (取自Predef.scala)

  /**  @group aliases */
  val Map         = immutable.Map
  /**  @group aliases */
  val Set         = immutable.Set
   
   
  • 1
  • 2
  • 3
  • 4

但是Set和Map在scala中默认都是immutable的, 如果要使用mutable类型的必须显示声明。

一,Set的使用

  • 1 immutable set
错误的做法:
val set1 = Set(1, 2)
set1 += 3   //错误 immutable set是不可以在原来的对象添加修改元素的
println(set1)

正确的做法:
var set1 = Set(1, 2)
set1 += 3  //这里重新生成了另一个新的Set并将其赋值给set1
print(set1)
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

如果想使用某个Set的实现类,比如HashSet 也是如此

import scala.collection.immutable

var hastSet1 = immutable.HashSet(1, 2)
hastSet1 += 3
println(hastSet1)
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 2 mutable set
import scala.collection.mutable

val set2 = mutable.Set(1, 2)   //显示声明mutable
set2 += 3    //在原来的set2上添加元素
println(set2)
   
   
  • 1
  • 2
  • 3
  • 4
  • 5

如果想使用某个Set的实现类,比如HashSet 也是如此

import scala.collection.mutable

val hastSet1 = mutable.HashSet(1, 2)
hastSet1 += 3
println(hastSet1)
   
   
  • 1
  • 2
  • 3
  • 4
  • 5

二,Map的使用

  • 1 immutable map
var map1 = Map(1 -> "a", 2 -> "b")
map1 += (3 -> "c")
println(map1)
println(map1(1))

输出结果
Map(1 -> a, 2 -> b, 3 -> c)
a
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 2 mutable map
import scala.collection.mutable

val map2 = mutable.Map[Int, String]()
map2 += (1 -> "a")
map2 += (2 -> "b")
map2 += (3 -> "c")
println(map2)
println(map2(1))

输出结果
Map(1 -> a, 2 -> b, 3 -> c)
a
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值