Scala 不可变 List 方法

本文介绍Scala中列表的各种操作方法,包括创建、查询、修改等基本功能,并提供了丰富的示例代码来展示如何使用列表。

创建列表

val days = List("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
val days1 = "Sunday"::"Monday"::"Tuesday"::"Wednesday"::"Thursday"::"Friday"::"Saturday"::Nil


days: List[String] = List(
  "Sunday",
  "Monday",
  "Tuesday",
  "Wednesday",
  "Thursday",
  "Friday",
  "Saturday"
)
days1: List[String] = List(
  "Sunday",
  "Monday",
  "Tuesday",
  "Wednesday",
  "Thursday",
  "Friday",
  "Saturday"
)

创建空列表

val l = Nil

l: collection.immutable.Nil.type = List()
val l1 = List()

l1: List[Nothing] = List()

用“:::”叠加创建新列表

val wow = l ::: List("WOOOW", "WOOOOW")

wow: List[String] = List("WOOOW", "WOOOOW")

通过索引获取列表值

wow(1)

res12: String = "WOOOOW"
 val l = "Hello" :: "Hi" :: "Hah" :: "WOW" :: "WOOW" :: Nil

l: List[String] = List("Hello", "Hi", "Hah", "WOW", "WOOW")

获取值长度为3的元素数目

l.count(s => s.length == 3)

res16: Int = 2

返回去掉l头两个元素的新列表

l.drop(2)
l

res18_0: List[String] = List("Hah", "WOW", "WOOW")
res18_1: List[String] = List("Hello", "Hi", "Hah", "WOW", "WOOW")

返回去掉l后两个元素的新列表

l.dropRight(2)
l

res19_0: List[String] = List("Hello", "Hi", "Hah")
res19_1: List[String] = List("Hello", "Hi", "Hah", "WOW", "WOOW")

判断l是否存在某个元素

l.exists(s => s == "Hah")
l

res23_0: Boolean = true
res23_1: List[String] = List("Hello", "Hi", "Hah", "WOW", "WOOW")

滤出长度为3的元素

l.filter(s => s.length == 3)
l

res22_0: List[String] = List("Hah", "WOW")
res22_1: List[String] = List("Hello", "Hi", "Hah", "WOW", "WOOW")

判断所有元素是否以“H”打头

l.forall(s => s.startsWith("H"))

res24: Boolean = false

判断所有元素是否以“H”结尾

l.forall(s => s.endsWith("W"))

res29: Boolean = false

打印每个元素

l.foreach(s => print(s + ' '))//这里用的是foreach
Hello Hi Hah WOW WOOW 

取出第一个元素

l.head

res34: String = "Hello"

取最后一个元素

l.last

res35: String = "WOOW"

剔除最后一个元素,生成新列表

l
l.init

l
l.init

剔除第一个元素,生成新列表

l
l.tail

res38_0: List[String] = List("Hello", "Hi", "Hah", "WOW", "WOOW")
res38_1: List[String] = List("Hi", "Hah", "WOW", "WOOW")

判断列表是否为空

l.isEmpty

res39: Boolean = false

获取列表长度

l.length

res40: Int = 5

修改每个元素,再反转每个元素,形成新的列表

l.map(s => {val s1 = s + " - 01";s1.reverse})

res41: List[String] = List("10 - olleH", "10 - iH", "10 - haH", "10 - WOW", "10 - WOOW")

生成用逗号隔开的字符串

l.mkString(",")

res42: String = "Hello,Hi,Hah,WOW,WOOW"

反序生成新列表

l.reverse

res43: List[String] = List("WOOW", "WOW", "Hah", "Hi", "Hello")

按字母递增排序

val l = List("aa","zz","cc","bb","ab","da")
l.sortWith(_.compareTo(_) < 0)

l: List[String] = List("aa", "zz", "cc", "bb", "ab", "da")
res44_1: List[String] = List("aa", "ab", "bb", "cc", "da", "zz")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值