scalla List

创建list
var list1 = List(1,2,3)
println(list1.getClass.getName)
不可变的list
在list1前面使用0::创建一个list1,但是list1结果不变
一下都是在头部追加

0::list1;res5: List[Int] = List(0, 1, 2, 3)
res8: List[Int] = List(1, 2, 3)
scala> list1.::(0)
res10: List[Int] = List(0, 1, 2, 3)
scala> 0 +:list1
res11: List[Int] = List(0, 1, 2, 3)

list1是不可变的,但是可以基于list1进行操作产生新的list
在尾部追加

scala> list1 :+ 4
res12: List[Int] = List(1, 2, 3, 4)
scala> list1 ++: list2
res13: List[Int] = List(1, 2, 3, 5, 5, 6)
//两个list合并

创建可变的list
import scala.collection.mutable.ListBuffer
var list3= ListBuffer(1,3,4)
list追加元素,不会产生新的list

list3 += 4
list.append(3)
ar list4 = new ListBuffer[Int]()
list4: scala.collection.mutable.ListBuffer[Int] = ListBuffer()

scala> list4.append(8)

scala> list4.append(9)

scala> list3++list4//产生新的集合
res18: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 3, 4, 4, 8, 9)
//也是新建一个list而不是增加元素
scala> list4 :+9
res19: scala.collection.mutable.ListBuffer[Int] = ListBuffer(8, 9, 9)
scala> list4
res20: scala.collection.mutable.ListBuffer[Int] = ListBuffer(8, 9)
 list4.map(_*10)
res22: scala.collection.mutable.ListBuffer[Int] = ListBuffer(80, 90)

scala> list4.map{println("hello");_*10}
hello
res27: scala.collection.mutable.ListBuffer[Int] = ListBuffer(80, 90)

scala> list4.map{e=>println("hello");e*10}
hello
hello
res28: scala.collection.mutable.ListBuffer[Int] = ListBuffer(80, 90)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Scala的集合类可以从三个维度进行切分: 可变与不可变集合(Immutable and mutable coll...
    时待吾阅读 11,087评论 0 4
  • 3.数组、映射、元组、集合 3.1数组 3.1.1定长数组和变长数组 object ArrayDemo {def ...
    G__yuan阅读 3,660评论 0 2
  • 数组是一种可变的、可索引的数据集合。在Scala中用Array[T]的形式来表示Java中的数组形式 T[]。 v...
    时待吾阅读 4,587评论 0 0
  • scala学习笔记 第2章 变量和数据类型 基本数据 scala的核心数据为四种 :字面量、值、变量、类型 值使...
    485b1aca799e阅读 6,454评论 0 1
  • object ScalaTuple extends App { // scala 的映射与元组(tuple)// ...
    雨果等夏天阅读 5,291评论 0 0