Scala 链表 列表 List

本文介绍了Scala中的列表,一种不可变的数据结构。内容包括列表的基本操作,如连接、创建统一列表、制表函数及反向列表顺序,并通过示例展示了如何在Scala中使用这些操作。此外,还提到了Scala列表方法的多样性。
摘要由CSDN通过智能技术生成

Scala列表与数组非常相似,列表的所有元素都具有相同的类型,但有两个重要的区别。 首先,列表是不可变的,列表的元素不能通过赋值来更改。 其次,列表表示一个链表,而数组是平的。

具有类型T的元素的列表的类型被写为List[T]

尝试以下示例,这里列出了为各种数据类型定义的列表。

// List of Strings
val fruit: List[String] = List("apples", "oranges", "pears")

// List of Integers
val nums: List[Int] = List(1, 2, 3, 4)

// Empty List.
val empty: List[Nothing] = List()

// Two dimensional list
val dim: List[List[Int]] =
   List(
      List(1, 0, 0),
      List(0, 1, 0),
      List(0, 0, 1)
   )

所有列表都可以使用两个基本构建块定义,尾部为Nil::,它的发音为cons。 Nil也代表空列表。以上列表可以定义如下。

// List of Strings
val fruit = "apples"::("oranges"::("pears"::Nil))

// List of Integers
val nums = 1::(2::(3::(4::Nil)))

// Empty List.
val empty = Nil

// Two dimensional list
val dim = (1::(0::(0::Nil))) ::
          (0::(1::(0::Nil))) ::
          (0::(0::(1::Nil)))::Nil

 

 

列表基本操作

列表上的所有操作都可以用以下三种方法表示。

序号 方法 描述
1 head 此方法返回列表的第一个元素。
2 tail 此方法返回由除第一个之外的所有元素组成的列表。
3 isEmpty 如果列表为空,则此方法返回true,否则返回false

以下示例显示如何使用上述方法。

示例

object Demo {
   def main(args: Array[String]) {
      val fruit = "apples"::("oranges"::("pears"::Nil))
      val nums = Nil

      println( "Head of fruit : " + fruit.head )
      println( "Tail of fruit : " + fruit.tail )
      println( "Check if fruit is empty : " + fruit.isEmpty )
      println( "Check if nums is empty : " + nums.isEmpty )
   }
}

将上述程序保存在源文件:Demo.scala中,使用以下命令编译和执行此程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值