1. 程式人生 > 實用技巧 >scala 資料結構(十二):集合例項(一)基本屬性和常用的操作、衍生集合、集合計算初級函式

scala 資料結構(十二):集合例項(一)基本屬性和常用的操作、衍生集合、集合計算初級函式

例項一:

package com.atguigu.scala.chapter07

/**
  * Author: Felix
  * Date: 2020/5/4
  * Desc: 基本屬性和常用的操作
  */
object Scala09_TestFun {
  def main(args: Array[String]): Unit = {
    val list: List[Int] = List(1,2,3,4,5,6)
    //(1)獲取集合長度
    //println(list.length)
    //(2)獲取集合大小
    //println(list.size)
    //(3)迴圈遍歷
    
//println(list) //list.foreach(println) //(4)迭代器 //for (elem <- list.iterator) { // println(elem) //} //(5)生成字串 //val res: String = list.mkString(",") //println(res) //(6)是否包含 println(list.contains(1)) } }

例項二:

package com.atguigu.scala.chapter07

/**
  * Author: Felix
  * Date: 2020/5/4
  * Desc: 衍生集合
  
*/ object Scala10_TestFun { def main(args: Array[String]): Unit = { val list1 = List(1,2,3,4,5,6,7) val list2 = List(4,5,6,7,8,9,10,11,12) //(1)獲取集合的頭 1 //println(list1.head) //(2)獲取集合的尾(不是頭的就是尾) List(2, 3, 4, 5, 6, 7) //println(list1.tail) //(3)集合最後一個數據 7 //println(list1.last)
//(4)集合初始資料(不包含最後一個) //println(list1.init) //(5)反轉 //println(list1.reverse) //(6)取前(後)n個元素 //println(list1.take(3)) //println(list1.takeRight(3)) //(7)去掉前(後)n個元素 //println(list1.drop(3)) //println(list1.dropRight(3)) //(8)並集 //val newList: List[Int] = list1.union(list2) //println(newList) //(9)交集 //val newList: List[Int] = list1.intersect(list2) //(10)差集 //val newList: List[Int] = list1.diff(list2) //val newList: List[Int] = list2.diff(list1) //println(newList) //(11)拉鍊 //println(list1.zip(list2)) //(12)滑窗 for (elem <- list1.sliding(3,3)) { println(elem) } } }

例項三:

package com.atguigu.scala.chapter07

/**
  * Author: Felix
  * Date: 2020/5/4
  * Desc:  集合計算初級函式
  */
object Scala11_TestFun {
  def main(args: Array[String]): Unit = {
    val list: List[Int] = List(5,1,8,2,-3,4)
    //(1)求和
    //println(list.sum)
    //(2)求乘積
    //println(list.product)
    //(3)最大值
    //println(list.max)
    //(4)最小值
    //println(list.min)
    //(5)排序     sorded|sortBy|sortWith
    //println(list.sorted.reverse)


    //如果函式引數和函式體是一致的情況,那麼不能簡化
    //println(list.sortBy(elem => elem))

    //按照集合中元素的絕對值進行排序
    //println(list.sortBy(elem => elem.abs))
    //println(list.sortBy(_.abs))
    //println(list.sortBy(elem => elem).reverse)
    println(list.sortBy(elem => -elem))

    //println(list.sortWith((a:Int,b:Int)=>{a < b}))
    println(list.sortWith(_ > _))


  }
}