scala(四)集合

List

// 字符串列表
val site: List[String] = List("Runoob", "Google", "Baidu")
// 整型列表val nums: List[Int] = List(1, 2, 3, 4)
// 空列表val empty: List[Nothing] = List()
// 二维列表val dim: List[List[Int]] =
   List(
      List(1, 0, 0),
      List(0, 1, 0),
      List(0, 0, 1)
   )

构造列表的两个基本单位是 Nil ::

Nil 也可以表示为一个空列表。

// 字符串列表
val site = "Runoob" :: ("Google" :: ("Baidu" :: Nil))
// 整型列表
val nums = 1 :: (2 :: (3 :: (4 :: Nil)))
// 空列表
val empty = Nil
// 二维列表
val dim = (1 :: (0 :: (0 :: Nil))) ::
          (0 :: (1 :: (0 :: Nil))) ::
          (0 :: (0 :: (1 :: Nil))) :: Nil

Scala列表有三个基本操作:

  • head 返回列表第一个元素

  • tail 返回一个列表,包含除了第一元素之外的其他元素

  • isEmpty 在列表为空时返回true

    连接列表

你可以使用 ::: 运算符或 List.:::() 方法或 List.concat() 方法来连接两个或多个列表。实例如下:

object Test {
   def main(args: Array[String]) {
      val site1 = "Runoob" :: ("Google" :: ("Baidu" :: Nil))
      val site2 = "Facebook" :: ("Taobao" :: Nil)
      // 使用 ::: 运算符
      var fruit = site1 ::: site2
      println( "site1 ::: site2 : " + fruit )
      
      // 使用 List.:::() 方法
      fruit = site1.:::(site2)
      println( "site1.:::(site2) : " + fruit )
      // 使用 concat 方法
      fruit = List.concat(site1, site2)
      println( "List.concat(site1, site2) : " + fruit  )
      
   }}

List.fill()

我们可以使用 List.fill() 方法来创建一个指定重复数量的元素列表:

List.tabulate()

List.tabulate() 方法是通过给定的函数来创建列表。

方法的第一个参数为元素的数量,可以是二维的,第二个参数为指定的函数,我们通过指定的函数计算结果并返回值插入到列表中,起始值为 0,

List.reverse

List.reverse 用于将列表的顺序反转





Map

// 空哈希表,键为字符串,值为整型
var A:Map[Char,Int] = Map()
// Map 键值对
val colors = Map("red" -> "#FF0000", "azure" -> "#F0FFFF")
需要为键值对定义类型。如果需要添加 key-value 对,可以使用 + 号,如下所示:
A += ('I' -> 1)
A += ('J' -> 5)
A += ('K' -> 10)
A += ('L' -> 100
Map 基本操作
keys    返回 Map 所有的键(key)    
values    返回 Map 所有的值(value)    
isEmpty    在 Map 为空时返回true

Map 合并

你可以使用 ++ 运算符或 Map.++() 方法来连接两个 Map,Map 合并时会移除重复的 key。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31496956/viewspace-2213143/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31496956/viewspace-2213143/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值