scala学习笔记(五)集合操作

 
   



object HelloArrayOps {

def main(args: Array[String]): Unit = {
// val array = new Array[Int](5)
// val array = Array[Int](1,2,3,4,5)
// val array = Array(1, 2, 3, 4, 5)
// val array = Array.apply(1,2,3,4,5)
val array = Array(1, 2, 3, 4, 5)
array(0) = 10
for (item <- array) println(item)

import scala.collection.mutable.ArrayBuffer
val arrayBuffer = new ArrayBuffer[Int]()
arrayBuffer += 1
arrayBuffer += 2
arrayBuffer += 3
arrayBuffer += (4, 5, 6, 7, 8, 9, 10)
arrayBuffer ++= Array(1, 2, 3)
arrayBuffer.insert(arrayBuffer.length - 1, 100, 1000)
for (item <- arrayBuffer) println(item)

for (i <- 0 until (array.length)) print(array(i) + " ")
println
for (i <- 0 until (array.length, 2)) print(array(i) + " ")
println
for (i <- (0 until array.length).reverse) print(array(i) + " ")
println
scala.util.Sorting.quickSort(array)
println(array.mkString("(", ",", ")"))
println(array.sum)
println(array.max)

//如果想在已有数组基础的基础上,通过操作每个元素来生成新的元素,可使用yield语法来完成。
val arrayAddedOne = for (item <- array) yield item + 1
println(arrayAddedOne.mkString(","))

val arrayEven = for (item <- array if item % 2 == 0) yield item
println(arrayEven.mkString(","))

println(array.filter { x => x % 2 == 0 }.mkString(" "))

println(array.filter { x => x % 2 == 0 }.map{ x=> x*10}.mkString(" "))
}

}


 
   
继承结构
1.Iterable是Trait,要求继承者实现一些共同的方法,例如遍历
2.Array是一个基础数据结构,不从属scala集合体系
3,集合体系中的集合分为可变集合:scala.collection.mutable._
与不可变集合:scala.collection.immutable._
4.List是元素的列表集合,是不可变的:
1 to 10 -> Range ->
5.List是元素的列表集合,是不可变的:
第一点:List中的head是第一个元素,tail是剩下的元素构成的新List
第二点:使用::这个操作符来把List和其他的元素进行组拼来构建新的List
print(0::list)
第三点:如果集合中没有元素的话,此时为Nil,例如List中只有一个元素,那么tail操作就会返回Nil
6,LinkedList是可修改的,元素可变列表
7,Set是元素不可重复的集合,且元素是无序的;HashSet中的元素不可变,且不可重复,且不能保证顺序
8,LinkedHashSet会维护元素的插入顺序
9,SortedSet会自动为插入的元素进行排序(1,2,3,4,5...)
scala.collection.mutable.LinkedHashSet
scala.collection.mutable.HashSet
scala.collection.mutable.SortedSet

你可能感兴趣的:(scala)