scala03 集合 

数组

   //数组
    //val 不可改变描述的是引用
    val array =Array[Int](1,2,3,4,5)
    array(1) = 5
    println(array(1))
    for(a<-array){
      print(a)
    }
    array.foreach(print)
println()

链表

  //链表
    val list =List(1,2,3,4,5)
    for (a <- list){
      print(a)
    }
    list.foreach(print)
    println()
    val listbuffer = ListBuffer("1","2","3","4","5")
    val listbuffer01 = ListBuffer("6","7","8","9","0")

    //可变的列表添加元素
    listbuffer.+=("11")
    listbuffer.append("11")
    //删除第一个出现的
    listbuffer.-=("2")
    //++ 两个数组相加 返回一个新的数组
 // var  listbuffer03 = listbuffer.++(listbuffer01)
    var listbuffer03 = listbuffer++listbuffer01
    println(listbuffer01)
    println(listbuffer03)
    println(listbuffer)
    //.++ 在链表头加一个元素
  var  listbuffer04 = listbuffer.++:("8")
    println(listbuffer04)
    //在链表尾部 添加一个元素
    var  listbuffer05 = listbuffer.:++("8")
    println(listbuffer05)
    //listbuffer.foreach(print)

set 

    //set
    val set01 =  scala.collection.immutable.Set(1,2,3,4,5)
    //不可变
    //set01.+=(8)
    val set02 = scala.collection.mutable.Set(1,2,3,4,5)
    set02.+=(1)
    set02.foreach(println)

tuple

  //tuple 一共有22个。。
    val tuple2 =Tuple2(1,"2")
    //tuple 可变参数 可以是任意类型
    val tp3 = Tuple3((a: Int, b: Int) => {
      a + b
    }, "2", "3")
    //取值
    println("-----")
    println(tuple2._1)
    val val1 = tp3._1(1, 2)
    println(s"$val1")
    println("-----")
    val iterator = tp3.productIterator
    while (iterator.hasNext){
      println(iterator.next())
    }

map



    //map

    val map01 = Map(("1", 1), "2" -> 2, ("3", 3), ("1", 4))
    map01.foreach(println)
    val iterator1 = map01.keys.iterator
    //返回的是Spme(4)  Option类型子类型有一个none 一个Some
    println(map01.get("1"))
    println(map01.get("1").get)

    //报错 因为返回的是None
    println(map01.get("8"))
    // 判断如果是None 则返回默认值 少了ifelse判断
    println(map01.get("8").getOrElse("1235"))
    val map2 = scala.collection.mutable.Map(("1", 1), "2" -> 2, ("3", 3), ("1", 4))
    map2.put("1",3)
    println(map2)

集合的map方法和flatmap 方法处理数据集合

 //数据操作,不会影响到原有的list
    val list01 = List(1, 2, 3, 4, 5)
    val lit001 = list01.map((a: Int) => a + 10)
    val lit002 = list01.map(_ * 10)
    println(lit001)
    println(lit002)
    //flatMap 对单个元素处理 形成新的list
    //Array Set 同样适用
    val list03 = List("hello world", "hello cher")
    val liwst031 = list03.flatMap((a: String) => a.split(" "))
    println(liwst031)
    val list032 = liwst031.map((a: String) => (a, 1))
    println(list032)

上面的方法会存有中间集合,浪费内存,如果不像保留中间集合 可以使用iterator


    // 但是会存在效率问题 中间存了大量的转换集合 可以改为iterator
    val list04iteratot = List("hello world", "hello cher").iterator
    val ist041iteratot = list04iteratot.flatMap((a: String) => a.split(" ")).iterator
   ist041iteratot.foreach(println)
    val list042iterator = liwst031.map((a: String) => (a, 1)).iterator
    list042iterator.foreach(println)

iterator 集合只保存数据的指针,不保存数据, flatmap采用迭代方式取数据,处理完一个在处理下一个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值