scala outline
scala 不可变List 创建 访问
- Scala 中的 List 和 Java List
不一样
,在 Java 中 List 是一个接口,真正存放数据是 ArrayList,而 Scala 的 List 可以直接存放数据,List 属于序列 Seq(特质)的子类 默认情况下
Scala 的 List 是不可变的
def main(args: Array[String]): Unit = {
// 创建List集合,因为List是抽象的,只能通过apply方式创建
val list: List[Int] = List(1, 2, 3, 4)
// 访问方式 1
list.foreach((x: Int) => {
print(x + " ") // 输出 1 2 3 4
})
// 访问方式 2
val it: Iterator[Int] = list.iterator
while (it.hasNext){
print(it.next()+" ") // 输出 1 2 3 4
}
//获取集合中的某一个元素
println(list(1))
}
scala 向不可变List中添加元素
- :+ 和 +:
def main(args: Array[String]): Unit = {
// 通过 :+ 和 +: 给 list 追加元素(list1本身的集合并没有变化)
var list1 = List(1, 2, 3, "abc")
val list2 = list1.:+(4)
// val list2 = list1 :+ 4
println(list2) // 输出 List(1, 2, 3, abc, 4)
val list3 = list1.+:(10)
println(list3) // 输出 List(10, 1, 2, 3, abc)
}
- ::和:::
- 符号
::
表示向集合中添加元素 - 空集合怎么表示
// 方式1
List()
// 方式2
Nil
def main(args: Array[String]): Unit = {
val list4 = List(1, 2, 3, "abc")
// 表示向空集合中依次添加以下元素
val list5 = 4 :: 5 :: 6 :: list4 :: Nil
println("list5=" + list5) // 输出 list5=List(4, 5, 6, List(1, 2, 3, abc))
}
- :::
作用:
扁平化
def main(args: Array[String]): Unit = {
val list1: List[Int] = List(1, 2, 3, 4)
val list2: List[Int] = List(5, 6)
val newList0: List[Any] = list2.::(list1)
println(newList0) // 输出 List(List(1, 2, 3, 4), 5, 6)
// 扁平化 List(1, 2, 3, 4)
val newList1: List[Int] = list1 ::: list2
println(newList1) // 输出 List(1, 2, 3, 4, 5, 6)
}
scala 可变List 创建 访问
// 创建list
val list1: ListBuffer[Int] = ListBuffer(1, 2, 3)
// 访问方式1
list1.foreach((x: Int) => {
print(x + " ")
})
// 访问方式2
val it: Iterator[Int] = list1.iterator
while (it.hasNext) {
print(it.next + " ")
}
}
建议
建议:
在操作集合的时候,不可变集合的增删改查变用符号,可变集合的增删改查变用方法