惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
G
Google Developers Blog
小众软件
小众软件
V
V2EX
月光博客
月光博客
腾讯CDC
aimingoo的专栏
aimingoo的专栏
J
Java Code Geeks
Y
Y Combinator Blog
人人都是产品经理
人人都是产品经理
B
Blog RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 【当耐特】
D
Docker
M
MIT News - Artificial intelligence
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
I
InfoQ
MongoDB | Blog
MongoDB | Blog
Apple Machine Learning Research
Apple Machine Learning Research
Jina AI
Jina AI

博客园 - cindy_zl

SAP SD销售与分销模块 Agent认知框架ReAct&Plan RAG系统优化 RAG检索优化 RAG架构 SAA-C02-架构师助理级-英文版-Q1 scala-数组 navicat mysql创建存储过程报错 安装完kali出现中文乱码 Spark SQL是处理结构化的数据 SPARK SQL ERROR: Detected cartesian product for INNER join between logical plans报错解决方法 scala的lazy关键字 scala集合三大类(seq序列,set集,map映射)——map映射 scala集合三大类(seq序列,set集,map映射)——set集合 scala元组及拉链操作 scala的map映射 scala数组 scala方法和涵数的声明以及方法转换成涵数 scala的基础数据类型&if条件表达式&for循环
scala集合三大类(seq序列,set集,map映射)——list序列
cindy_zl · 2019-09-18 · via 博客园 - cindy_zl

scala集合三大类(seq序列,set集,map映射)

seq序列:

scala> val list1 = List(1,2,3)

list1: List[Int] = List(1, 2, 3)

scala> val list2 = 0 :: list1

list2: List[Int] = List(0, 1, 2, 3)

//下面两个方式效果一样, :: and +:  

scala> val list3 = list1.::(0)

list3: List[Int] = List(0, 1, 2, 3)

scala> val list4 = 0 +: list1

list4: List[Int] = List(0, 1, 2, 3)

scala> val list5 = list1.+:(0)

list5: List[Int] = List(0, 1, 2, 3)

scala> val list5 = list1.+:(0)

list5: List[Int] = List(0, 1, 2, 3)

scala> val list6 = list1 :+ 4

list6: List[Int] = List(1, 2, 3, 4)

scala> val list7 = List(5,6,7)

list7: List[Int] = List(5, 6, 7)

scala> val list8 = list1 ++ list7

list8: List[Int] = List(1, 2, 3, 5, 6, 7)

scala> val list8 = list7 ++ list1

list8: List[Int] = List(5, 6, 7, 1, 2, 3)

scala> val list9 = list1 ::: list7

list9: List[Int] = List(1, 2, 3, 5, 6, 7)

scala> val list9 = list7 ::: list1

list9: List[Int] = List(5, 6, 7, 1, 2, 3)

可变长度list

scala> import scala.collection.mutable.ListBuffer

import scala.collection.mutable.ListBuffer

scala> val list1 = ListBuffer(1,2,3)

list1: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3)

scala> list1 += 4                      //list列表追加元素

res54: list1.type = ListBuffer(1, 2, 3, 4)

scala> list1

res55: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3, 4)

scala> list1.append(5)                 //list列表追加元素

res56: list1.type = ListBuffer(1, 2, 3, 4, 5)

scala> list1

res57: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3, 4, 5)

将两个List追加到一个List里面

scala> val list2 = ListBuffer(6,7,8)

list2: scala.collection.mutable.ListBuffer[Int] = ListBuffer(6, 7, 8)

scala> list1 ++= list2                //使用 ++= 操作符可以将后面list2的内容追加到list1中

res58: list1.type = ListBuffer(1, 2, 3, 4, 5, 6, 7, 8)

scala> list1           //list1已经把list2里面的内容追加起来了

res59: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3, 4, 5, 6, 7, 8)

scala> val list4 = ListBuffer(1,2,3)

list4: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3)

scala> val list5 = ListBuffer(4,5,6)

list5: scala.collection.mutable.ListBuffer[Int] = ListBuffer(4, 5, 6)

scala> list4 ++ list5                       //++操作符不可以将list5的内容追加到list4中,只能用 ++= 操作符才可以,如上例,这里是把两个list合并生成一个新的list的操作

res61: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3, 4, 5, 6)

scala> list4

res62: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3)       //list4并未有list5的内容

scala> val list6 = ListBuffer(1,2,3)

list6: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3)

scala> list6 :+ 4           //这里虽然使用了一个不可变list的操作符可以执行成功,但是依然是生成一个新的 list , list6并没有把4添加到列表中,而是生成新的一个列表

res63: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3, 4)

scala> list6

res64: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3)

scala> res63

res65: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3, 4)   //使用不可变列表的操作符 :+ 将列表里面元素与新元素合并且生成一上新的列表