集合、数组、列表List、Set集合、Map集合、元组、集合常用函数、队列、并行集合

目录

 数组

列表List 

Set集合

 Map集合

元组 

衍生集合 

 集合计算简单、高级函数

reduce归约 

合并映射

WordCount普通、复杂计算 

队列 

并行集合 


 数组

package chapter07
//不可变数组
object Test01_ImmutableArray {
  def main(args: Array[String]): Unit = {
    //1.创建数组 [数组里面每个元素的类型] [Int]给个泛型
    val arr:Array[Int]=new Array[Int](5) //大小为5 长度为5的整数Int类型的数组
    //另一种创建方式
    val arr2=Array(12,37,42,58,97)

    //2.访问数组中的元素  不可变数组
    println(arr.mkString(","))
    arr(0)=12
    arr(4)=57
    println(arr(0))
    println(arr(1))
    println(arr(4))
    println(arr2(1))
//    println(arr(5))
    println(arr2.mkString(","))

    println("----------------------------------------------")

    //3.数组的遍历
    //1)普通for循环
    for(i <- 0  to  arr.length-1 ){   //for循环 循环的是下标
      println(arr(i))
    }
    println("---------------------------------------")

    for(i <- 0  until  arr.length ){   //for循环 循环的是下标
      println(arr(i))
    }
    println("-----------------------------------------")
    for(i <- arr.indices )
      println(arr(i))

    println("-------------------------------------------")

    //2)直接遍历所有元素,增强for循环
    for(elem <-arr2) println(elem)

    println("---------------------------------------")

    //3)用迭代器去做当前集合所有元素的遍历
    val iter=arr2.iterator
    while(iter.hasNext)
      println(iter.next())

    println("--------------------------")

    //4)调用foreach方法
    arr2.foreach((elem:Int) =>println(elem))
    println("----------------------------------------")
    arr.foreach(println)
    println(arr2.mkString("-"))

    println("------------------------------------")

    //4.添加元素
    val newArr=arr2.:+(73)
    println(arr2.mkString("-"))
    println(newArr.mkString("-"))

    val newArr2=newArr.+:(30)
    println(newArr2.mkString("-"))

    val newArr3=newArr2 :+ 15
//    val newArr4 =newArr3 +: 29  // error 若是省略点号 改成空格 就变成了右边是对象 左边是参数
    val newArr4=19 +: 29 +: newArr3 :+ 26 :+73
    println(newArr4.mkString("-"))


  }

}
package chapter07

import scala.collection.mutable
import scala.collection.mutable.ArrayBuffer

//可变数组
object Test02_ArrayBuffer {
  def main(args: Array[String]): Unit = {

    //1.创建可变数组
    val arr1:ArrayBuffer[Int] = new ArrayBuffer[Int]()  //可变这里需要导包 Array底层有对应的隐式转换 不需要
    val arr2=ArrayBuffer(23,57,92)

    println(arr1.mkString(","))
    println(arr2) //这里直接可以打印值 而不是Array里面的地址
    println(arr2.mkString("-"))


    //2.访问元素
//    println(arr1(0))  //error 数组越界 arr1里面什么都没有
    println(arr2(1))
    arr2(1)=39
    println(arr2(1))
    println("-----------------------------------------")


    //3.添加元素
    val newArr1=arr1 :+ 15  //15
    println(newArr1)

    println(arr1==newArr1)


    val newArr2=arr1+=20  //20
    arr1 += 19

    println(arr1)

    println(arr1==newArr2) //指向同一个引用

    77 +=: arr1
    println(arr1)
    println(newArr2)

    arr1.append(36)
    arr1.prepend(11,76)
    arr1.insert(1,13,59)
    println(arr1)

    arr1.insertAll(2,newArr1)  //添加数组
    arr1.prependAll(newArr2)

    println(arr1)

    //4.删除元素
    arr1.remove(3)
    println(arr1)

    arr1.remove(0,10)
    println(arr1)

    arr1 -= 19
    println(arr1)
    println("---------------------------------------------------------")

    //5.可变数组转换为不可变数组
    val arr:ArrayBuffer[Int]=ArrayBuffer(23,56,98)
    val newArr:Array[Int]=arr.toArray
    println(newArr.mkString(","))
    println(arr)

    //6.不可变数组转换为可变数组
    val buffer: mutable.Buffer[Int] = newArr.toBuffer
    println(buffer)
    println(newArr) //Array Int 是地址


  }

}
package chapter07
//多维数组
object Test03_MulArray {
  def main(args: Array[String]): Unit = {

    //1.创建二维数组
    val array: Array[Array[Int]] = Array.ofDim[Int](2, 3) //数组的数组

    //2.访问元素
    array(0)(2) = 19
    array(1)(0) = 25

    println(array.mkString(","))

    for (i <- 0 until array.length; j <- 0 until array(i).length) {
      println(array(i)(j))
    }
    println("------------------------------------------")

    for (i <- array.indices; j <- array(i).indices) {
      print(array(i)(j) + "\t")
      if (j == array(i).length - 1) println() //换一行

    }
    println("------------------------------------------")

    array.foreach(line => line.foreach(println)) //第一重处理每一行的数据 然后再对每一个数据进行处理
    println("-------------------------------------------------")

    array.foreach(_.foreach(println))  //是几维数组就有几个foreach


  }
}

列表List 

package chapter07


object Test04_List {
  def main(args: Array[String]): Unit = {
    //1.创建一个List 不可变的
    val list1 =List(23,65,87)  //list是抽象方法 不能用类的构造方法去创建 可以用伴生对象的apply去创建
    println(list1)


    //2.访问和遍历元素
    println(list1(1))

//    list1(1)=12 //error 不能更改它的值

    list1.foreach(println)

    //3.添加元素
    val list2=10 +: list1
    val list3=list1 :+ 23
    println(list2)
    println(list3)

    println("-------------------------------------")

    val list4=list2.::(51)  //加在开头
    println(list4)

    //Nil 空列表
    val list5=Nil.::(13) //很少用空列表去添加元素 相当于创建一个新列表
    println(list5)

    val list6=73::32 :: Nil
    val list7 = 17 :: 28 :: 59 :: 16  :: Nil //定义空列表 方便定义一个列表
    println(list6)
    println(list7)


    //4.合并列表
    val list8 =list6::list7
    println(list8)

    val list9=list6:::list7  //::: 拆分之后合成一个完成的list 扁平化
    println(list9)

    val list10=list6++list7
    println(list10)

  }

}
package chapter07

import scala.collection.mutable.ListBuffer

object Test05_ListBuffer {
  def main(args: Array[String]): Unit = {

    //1.创建可变列表
    val list1:ListBuffer[Int] =new ListBuffer[Int]()
    val list2=ListBuffer(12,53,75)  //伴生对象 来创建列表

    println(list1)
    println(list2)

    println("----------------------")

    //2.添加元素
    list1.append(15,62)
    list2.prepend(20)

    list1.insert(1,19,22)
    println(list1)
    println(list2)

    println("--------------------------")

    list1+=25+=11
    31 +=:96 +=: list1 +=25 +=11
    println(list1)
    println("--------------------------")

    //3.合并列表
    val list3=list1 ++ list2
    println(list1)
    println(list2)

    println("-------------------------------")

    list1 ++=list2  //在list1后加  list++=:list2 在list2后加
    println(list1)
    println(list2)

    println("-------------------------")

    //4.修改元素
    list2(3)=30
    list2.update(0,89)
    println(list2)

    //5.删除元素
    list2.remove(2)
    println(list2)
    list2-=30
    println(list2)



  }

}

Set集合

package chapter07
//不可变set 原始内容是不做改变的
object Test06_ImmutableSet {
  def main(args: Array[String]): Unit = {

    //1.创建set
    val set1=Set(13,23,53,12,13,23,78)
    println(set1)
    println("------------------------------")

    //2.添加元素
    val set2=set1 + 129
//    val set2=set1.+(20)  //无序 没必要关注朝哪个方向添加
    println(set1)
    println(set2)
    println("----------------------------------------")

    //3.合并set
    val set3=Set(19,13,23,53,67,99)
    val set4=set2 ++ set3
    println(set2)
    println(set3)
    println(set4)
    println("---------------------------------------")

    //4.删除元素
    val set5=set3 -13
    println(set3)
    println(set5)


  }

}
package chapter07

import scala.collection.mutable

//可变set 基于原始set来做更改
object Test07_MutableSet {
  def main(args: Array[String]): Unit = {

    //1.创建set  无序去重
    val set1:mutable.Set[Int]=mutable.Set(13,23,53,12,13,23,78)
    println(set1)
    println("------------------------------")

    //2.添加元素
    val set2 =set1 + 11
    println(set1)
    println(set2)

    println("--------------------------------------")

    set1 += 11
    println(set1)


    println("-----------------------------------")
    val flag1=set1.add(10)
    println(flag1)
    println(set1)
    val flag2=set1.add(10)  //已经有了 没有做任何操作 false
    println(flag2)
    println(set1)

    println("----------------------------")

    //3.删除元素

    set1 -= 11
    println(set1)
    println("-----------------------------------")

    val flag3=set1.remove(10)
    println(flag3)
    println(set1)
    val flag4=set1.remove(10)  //已经删除了 没有做任何操作 false
    println(flag4)
    println(set1)
    println("---------------------------------")

    //4.合并两个Set
    val set3=mutable.Set(13,12,13,27,98,29)
    println(set1)
    println(set3)

    println("-------------------------------")

    val set4 =set1 ++ set3
    println(set4)

    println("-------------------------------")

//    set1 ++=set3 //谁调用谁改变
    println(set1)
    println(set3)

    println("--------------------------")
    set3 ++=set1
    println(set1)
    println(set3)


  }

}

 Map集合

package chapter07
//不可变map
object Test08_ImmutableMap {
  def main(args: Array[String]): Unit = {

    //1.创建不可变map
    val map1:Map[String,Int]=Map("a"->13,"b"->25,"hello"->3)
    println(map1)
    println(map1.getClass) //当前类的表达 class scala.collection.immutable.Map$Map3 Map3三个元素
    println("--------------------------")
    //2.遍历元素
    map1.foreach(println)
    map1.foreach((kv:(String,Int)) => println(kv)) //元组

    println("---------------------------------")

    //3.取map中所有的key或者value
    for(key <- map1.keys){
      println(s"$key---> ${map1.get(key)}")

    }
    println("----------------------------")

    //4.访问某一个key的value
    println("a  "+map1.get("a").get)  //不安全 改成getOrElse
    println("c  "+map1.get("c"))  //包装成option 不会返回空指针异常 Java8中借鉴option类型
    println("c  "+map1.getOrElse("c",0)) //或者"c"的值 如果没有"c"的值 就返回一个默认的值
    println("---------------------------")

    println(map1("a"))

  }

}

package chapter07

import scala.collection.mutable

object Test09_MutableMap {
  def main(args: Array[String]): Unit = {

    //1.创建可变map
    val map1:mutable.Map[String,Int]=mutable.Map("a"->13,"b"->25,"hello"->3)
    println(map1)
    println(map1.getClass) //当前类的表达 class scala.collection.mutable.HashMap
    println("--------------------------")

    //2.添加元素  hashmap无序 顺序是不需要考虑的
    map1.put("c",5)
    map1.put("d",9)
    println(map1)

    map1+=(("e",7))
    println(map1)
    println("-----------------------")

    //3.删除元素
    println(map1("c"))
    map1.remove("c")
    println(map1)
    println(map1.getOrElse("c",0))
    println("-----------------------------")
    map1-="d"
    println(map1)
    println("-----------------------")

    //4.修改元素
    map1.update("c",5)
    map1.update("e",10)
    println(map1)
    println("--------------------------------")

    //5.合并两个Map
    val map2:Map[String,Int]=Map("aaa"->13,"b"->29,"hello"->3)
//    map1 ++=map2
    println(map1)
    println(map2)
    println("------------------------------------------")

    val map3: Map[String, Int] = map2 ++ map1 //相同的覆盖成map1的值
    //    map2 ++=map1 map2不可变
    println(map1)
    println(map2)
    println(map3)




  }

}

元组 

package chapter07
//元组
//元组也是可以理解为一个容器,可以存放各种相同或不同类型的数据。
// 说的简单点,就是将多个无关的数据封装为一个整体,称为元组。
//注意:元组中最大只能有 22 个元素。
object Test10_Tuple {
  def main(args: Array[String]): Unit = {

    //1.创建元组
    val tuple:(String,Int,Char,Boolean)=("hello",100,'a',true)
    println(tuple)

    //2.访问数据
    println(tuple._1)
    println(tuple._2)
    println(tuple._3)
    println(tuple._4)

    println(tuple.productElement(1))
    println("-------------------------------------")

    //3.遍历元组数据
    for (elem <- tuple.productIterator)
      println(elem)

    //4.嵌套元组
    val mulTuple=(12,0.3,"hello",(23,"scala"),29)
    println(mulTuple._4._2)


  }

}
package chapter07
//基本属性和常用操作
object Test11_CommonOp {
  def main(args: Array[String]): Unit = {
    val list=List(1,3,5,7,2,89)
    val set=Set(23,34,423,75)

//    (1)	获取集合长度
    println(list.length)
//    (2)	获取集合大小
    println(set.size)  //set不是线性序列 没有length
    println("--------------------------------")
//    (3)	循环遍历
    for(elem <- list)
      println(elem)
    set.foreach(println)
    println("---------------------------")
//    (4)	迭代器
    for(elem <- list.iterator)
      println(elem)
    println("-----------------------------")
//    (5)	生成字符串
    println(list)
    println(set)
    println(list.mkString("--"))
    println("-------------------------------")
//    (6)	是否包含
    println(list.contains(23))
    println(set.contains(23))

  }

}

衍生集合 

package chapter07
//衍生集合
object Test12_DeriverCollection {
  def main(args: Array[String]): Unit = {
    val list1=List(1,3,5,7,2,89)
    val list2=List(3,7,2,45,4,8,19)
//    (1)获取集合的头
    println(list1.head)  //有序集合才去考虑头和尾
//    (2)获取集合的尾(不是头的就是尾)
    println(list1.tail)  //去掉头 剩下的元素
//    (3)	集合最后一个数据
    println(list2.last)
//    (4)	集合初始数据(不包含最后一个)
    println(list2.init) //去掉尾 剩下的元素
//    (5)	反转
    println(list1.reverse)
//    (6)	取前(后)n 个元素
    println(list1.take(3))
    println(list1.takeRight(4))
//    (7)	去掉前(后)n 个元素
    println(list1.drop(3))
    println(list1.dropRight(4))
    println("-------------------------------------")
//    (8)	并集
    val union=list1.union(list2)
    println("union: "+union)
    println(list1:::list2)
    //如果是set做并集,会去重
    println("---------------------------------")
    val set1=Set(1,3,5,7,2,89)
    val set2=Set(3,7,2,45,4,8,19)
    val union2=set1.union(set2)
    println("union2: "+union2)
    println(set1 ++ set2)
    println("---------------------------------")
//    (9)	交集
    val intersection =list1.intersect(list2)
    println(intersection)
    println("-----------------------------")
//    (10)	差集
    val diff1=list1.diff(list2)
    val diff2=list2.diff(list1)
    println(diff1)
    println(diff2)
    println("-----------------------------------")
//    (11)	拉链
    println("zip: "+ list1.zip(list2))
    println("zip: "+ list2.zip(list1))
    println("---------------------------------------")
//    (12)	滑窗 //val list1=List(1,3,5,7,2,89)
   for (elem <- list1.sliding(3))  //三个数一个窗口
     println(elem)

    /**
      * List(1, 3, 5)
      * List(3, 5, 7)
      * List(5, 7, 2)
      * List(7, 2, 89)
      */
    println("------------------------")

    //val list2=List(3,7,2,45,4,8,19)
    for(elem <- list2.sliding(4,2))  // 四个数一个窗口 下个窗口隔两个元素 作为开始
    println(elem)

    /**
      * List(3, 7, 2, 45)
      * List(2, 45, 4, 8)
      * List(4, 8, 19)
      */

    println("------------------------------")

    for(elem <- list2.sliding(3,3)) // 翻跟头 没有重复计算 滚动窗口
      println(elem)





  }

}

 集合计算简单、高级函数

package chapter07
//集合计算简单函数
object Test13_SimpleFunction {
  def main(args: Array[String]): Unit = {
    val list=List(5,1,8,2,-3,4)
    val list2=List(("a",5),("b",1),("c",8),("d",2),("e",-3),("f",4))

//    (1)	求和
    var sum=0
    for(elem <- list)
      sum+=elem
    println(sum)
    println(list.sum)
//    (2)	求乘积
    println(list.product)
//    (3)	最大值
    println(list.max)
    println(list2.maxBy((tuple:(String,Int))=>tuple._2))
    println(list2.maxBy(_._2)) //按照某种方式排列

//    (4)	最小值
    println(list.min)
    println(list2.minBy(_._2))
//    (5)	排序
    //5.1 sorted
    val sortedList=list.sorted
    println(sortedList)
    //从大到小逆序排序
    println(list.sorted.reverse)  //两个步骤 效率不高
    //传入隐式参数
    println(list.sorted(Ordering[Int].reverse))
    println(list2.sorted) //按照字母序列排序 List((a,5), (b,1), (c,8), (d,2), (e,-3), (f,4))

    //5.2 sortBy
    println(list2.sortBy(_._2)) //从小到大 List((e,-3), (b,1), (d,2), (f,4), (a,5), (c,8))
    println(list2.sortBy(_._2)(Ordering[Int].reverse))  //从大到小 List((c,8), (a,5), (f,4), (d,2), (b,1), (e,-3))
    println("--------------------------------")
    //5.3 sortWith 将规则传入
    println(list.sortWith((a:Int,b:Int)=>{a<b}))
    println(list.sortWith(_>_))







  }

}
package chapter07
//集合计算高级函数 map
object Test14_HighLevelFunction_Map {
  def main(args: Array[String]): Unit = {
    val list =List(1,2,3,4,5,6,7,8,9)

    //1.过滤
    //选取偶数
    val evenList =list.filter((elem:Int)=>{elem%2==0})
    println(evenList)
    //选取奇数
    println(list.filter(_%2==1))

    println("--------------------------")

    //2.map
    //把集合中每个数乘2
    println(list.map(_*2))
    println(list.map(x=>x*x))
    println("-------------------------------")

    //3.扁平化
    val nestedList:List[List[Int]]=List(List(1,2,3),List(4,5),List(6,7,8,9))

    val flatList=nestedList(0):::nestedList(1):::nestedList(2)
    println(flatList)

    val flatList2=nestedList.flatten
    println(flatList2)
    println("------------------------------------")

    //4.扁平映射
    //将一组字符串进行分词,并保存成单词的列表
    val strings:List[String]=List("hello world","hello java","hello scala","we study")
    val splitList:List[Array[String]]=strings.map(string=>string.split(" ")) //分词
    val flattenList=splitList.flatten //打散 扁平化
    println(flattenList)

    val flatmapList=strings.flatMap(_.split(" "))
    println(flatmapList)
    println("---------------------------------")

    val intToInts: Map[Int, List[Int]] = list.groupBy(_ % 2)
    //5.分组groupBy
    //分成奇偶两组
    val groupMap=intToInts
    val groupMap2=list.groupBy(data=>if (data%2==0) "偶数"else "奇数")
    println(groupMap)
    println(groupMap2)
    println("----------------------------------")

    //给定一组词汇,按照单词的首字母进行分组
    val wordList=List("china","america","alice","canda","ace","japa","bob")
    println(wordList.groupBy(_.charAt(0)))






  }

}

reduce归约 

package chapter07
//reduce 归约
object Test15_HighLevelFunction_Reduce {
  def main(args: Array[String]): Unit = {

    val list=List(1,2,3,4)

    //1.reduce
    println(list.reduce(_ + _)) //10
    println(list.reduceLeft(_+_))
    println(list.reduceRight(_+_))

    println("-----------------------------------")

    val list2=List(3,4,5,8,10)
    println(list2.reduce((_-_))) //-24
    println(list2.reduceLeft(_-_))
    println(list2.reduceRight(_-_)) //6  3-(4-(5-(8-10)))
    println("-----------------------------------")

    //2.fold
    println(list.fold(10)(_+_)) //10+1+2+3+4 20
    println(list.foldLeft(10)(_-_)) //10-1-2-3-4 0
    println(list2.foldRight(11)(_-_))  // 3-(4-(5-(8-(10-11))))



  }

}

合并映射

package chapter07

import scala.collection.mutable

object Test16_MergeMap {
  def main(args: Array[String]): Unit = {

    val map1=Map("a"->1,"b"->3,"c"->6)
    val map2=mutable.Map("a"->6,"b"->2,"c"->9,"d"->3)

//    println(map1++map2) //这里出现的就只是map2的结果

    //作为基本的map作为状态的初始值 然后遍历另外一个map的key value对 然后去更新状态

    val map3=map1.foldLeft(map2)( //合并两个map里面的数值
      (mergedMap,kv)=>{
        val key=kv._1
        val value=kv._2
        mergedMap(key)=mergedMap.getOrElse(key,0)+value
        mergedMap
      }
    )
    println(map3)



  }

}

WordCount普通、复杂计算 

package chapter07
//普通版WordCount
//单词计数:将集合中出现的相同的单词,进行计数,取计数排名前三的结果
object Test17_CommonWordCount {
  def main(args: Array[String]): Unit = {

    val stringList:List[String]=List(
      "hello",
      "hello world",
      "hello scala",
      "hello spark from scala",
      "hello flink from scala"
    )

    //1.对字符串进行切分,得到一个打散所有单词的列表
    val wordList1=stringList.map(_.split(" "))
    val wordList2=wordList1.flatten
    println(wordList1)
    println(wordList2)
    println("-------------------------------------")
    val wordList=stringList.flatMap(_.split(" "))
    println(wordList)

    //2.相同的单词进行分组
    val groupMap=wordList.groupBy(word=>word)
    println(groupMap)
    println("------------------------------------")


    //3.对分组之后的list取长度,得到每个单词的个数
    val stringToInt: Map[String, Int] = groupMap.map(kv => (kv._1, kv._2.length))
    val countMap=stringToInt
    println(countMap)
    println("---------------------------------------")

    //4.将map转换为List,并排序取前3
    val sortList:List[(String,Int)]=countMap.toList
      .sortWith(_._2>_._2) //按照Int降序排列
      .take(3)
    println(sortList)






  }


}
package chapter07

object Test18_ComplexWordCount {
  def main(args: Array[String]): Unit = {

    val tupleList:List[(String,Int)]=List(
      ("hello",1),
      ("hello world",2),
      ("hello scala",3),
      ("hello spark from scala",1),
      ("hello flink from scala",2)
    )

    //思路一:直接展开成普通版本
    val newStringList:List[String]=tupleList.map(
      x=>{
        (x._1.trim + " ")*x._2
      }

    )
    println(newStringList)
    println("-----------------------------------------")

    //接下来操作与普通版本完全一致
    val wordCountList:List[(String,Int)]=newStringList
      .flatMap(_.split(" ")) //空格分词
      .groupBy(word =>word) //按照单词分组
      .map(kv =>(kv._1,kv._2.size)) //统计出每个单词的个数
      .toList
      .sortBy(_._2)(Ordering[Int].reverse)
      .take(3)
    println(wordCountList)
    println("----------------------------------")

    //思路二:直接基于预统计的结果进行转换
    //1.将字符串打散成单词,并结合对应的个数包装成二元组
    val preCountList:List[(String,Int)]=tupleList.flatMap(
      tuple=>{
        val strings:Array[String]=tuple._1.split(" ")
        strings.map(word=>(word,tuple._2))
      }
    )
    println(preCountList) //二元组
    println("------------------------------------")

    //2.对二元组进行按照单词进行分组
    val preCountMap=preCountList.groupBy(_._1)
    println(preCountMap)
    println("------------------------")

    //3.叠加每个单词预统计的个数值
    val countMap=preCountMap.mapValues(
      tupleList=>tupleList.map(_._2).sum

    )
    println(countMap)
    println("---------------------------------")

    //4.转换成list,排序取前3
    val countList=countMap.toList
      .sortWith(_._2>_._2)
    println(countList)










  }

}

队列 

package chapter07

import scala.collection.immutable.Queue
import scala.collection.mutable
//队列
object Test19_Queue {
  def main(args: Array[String]): Unit = {

    val strings: mutable.Queue[String] = new mutable.Queue[String]()
    //创建一个可变队列
    val queue=strings

    queue.enqueue("a","b","c")
    println(queue)

    queue.dequeue()
    println(queue)

    queue.dequeue()
    println(queue)
    println("---------------------------")


    //不可变队列
    val queue2=Queue("a","b","c")
    queue2.enqueue("d")
    val queue3=queue2.enqueue("d")
    println(queue3)



  }

}

并行集合 

package chapter07

import scala.collection.immutable
import scala.collection.parallel.ParSeq

//并行集合 并行执行
object Test20_Parallel {
  def main(args: Array[String]): Unit = {

    val result: immutable.IndexedSeq[Long] = (1 to 100).map(
      x => Thread.currentThread.getId
    )
    println(result)

    val result2: ParSeq[Long] = (1 to 100).par.map(
      x => Thread.currentThread.getId
    )
    println(result2)
  }

}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值