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

xiaoxiao2021-02-28  75

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

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

val List = scala.collection.immutable.List

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

/** @group aliases */ val Map = immutable.Map /** @group aliases */ val Set = immutable.Set

但是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)

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

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

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

import scala.collection.mutable val hastSet1 = mutable.HashSet(1, 2) hastSet1 += 3 println(hastSet1)

二,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 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
转载请注明原文地址: https://www.6miu.com/read-81129.html

最新回复(0)