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

来源:互联网 发布:sql server c# output 编辑:程序博客网 时间:2024/06/06 03:45

本小节主要是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并将其赋值给set1print(set1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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

import scala.collection.immutablevar hastSet1 = immutable.HashSet(1, 2)hastSet1 += 3println(hastSet1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 2 mutable set
import scala.collection.mutableval set2 = mutable.Set(1, 2)   //显示声明mutableset2 += 3    //在原来的set2上添加元素println(set2)
  • 1
  • 2
  • 3
  • 4
  • 5

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

import scala.collection.mutableval hastSet1 = mutable.HashSet(1, 2)hastSet1 += 3println(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.mutableval 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
阅读全文
0 0