zoukankan      html  css  js  c++  java
  • Scala Collection

    数组(Array)

    import scala.collection.mutable.ArrayBuffer
    
    // 定长数组
    val a = new Array[String](5)
    
    val b = new Array[Int](5)
    
    val c = Array("cjj", "jjc")
    
    b.length
    
    // 数组赋值
    a(1) = "cjj"
    a
    
    val array = Array[Int](1,2,3,4)
    // 末尾添加一个元素
    val a1 = array :+ 111
    
    // 开头添加一个元素
    val a2 = 111 +: array
    
    val array2 = Array[Int](5,6)
    
    // 两个数组相加
    array ++ array2
    array.++(array2)
    
    array
    
    // 将数组中的值迭代赋值给ele,然后打印
    for(ele <- array){
      println(ele)
    }
    
    array.foreach(println)
    
    // 逆序输出
    for(ele <- array.reverse){
      println(ele)
    }
    
    // 跳2步输出一个
    val array3 = Array("aaa", "bbb", "ccc")
    for(i <- array3.length-1 to 0 by -2){
      println(array3(i))
    }
    
    for(i <- 0 to array3.length-1 by +1){
      println(array3(i))
    }
    
    for(i <- array3.indices by +1){
      println(array3(i))
    }
    
    // 判断是否为空
    array.isEmpty
    // 长度
    array.length
    
    // 求最大值,最小值,求和
    val d = Array(1,2,3,4,5,6)
    d.max
    d.min
    d.sum
    
    d.mkString
    d.mkString(",")
    d.mkString("<", ",", ">")
    
    // 变长数组
    val e = ArrayBuffer[Int]()
    e += 1
    e += (2,3,4)
    // 加定长数组
    e ++= d
    // 在指定位置插入元素
    e.insert(0, 99)
    e
    // 删除指定位置元素
    e.remove(2)
    e
    // 从指定位置开始删除,删除多少个元素
    e.remove(1, 3)
    e
    // 移除最后几个元素
    e.trimEnd(2)
    e

    列表(List)

    List的特征是其元素以线性方式存储,集合中可以存放重复对象。

    import scala.collection.mutable.ListBuffer
    // 创建一个空List
    Nil
    
    val l = List(1,2,3,4,5)
    // 返回头部
    l.head
    // 返回除了头部之外的所有
    l.tail
    
    // Any类型的List
    val l1 = List(1,2,3,"cjj",0.0)
    
    // List添加元素
    val l2 = l1 :+ 55
    val l3 = 11 +: l1
    val l4 = 1 :: 2 :: 3 :: Nil
    val l5 = l1 :: Nil
    val l6 = 0 :: l1
    val l7 = l1 ::: l2
    
    // 添加元素
    val list = ListBuffer[Int]()
    list += 2
    list += (1,3,4)
    list ++= List(5,6,7)
    list
    
    // 减少元素,有就减,没有就不减
    list -= 2
    list -= 100
    list --= List(3,4)
    
    // 返回除了头部之外的所有
    list.tail
    list.tail.head
    
    val list2 = List(1,2,3,4,5,6)
    // 求和
    list2.product
    
    // 从前往后删,从后往前删
    list2.drop(2)
    list2.dropRight(2)
    
    val list3 = List(1,2,3,4)
    val list4 = List(3,4,5,6,7,8)
    
    // 并集
    list3.union(list4)
    
    // 交集
    list3.intersect(list4)
    
    // 在3里有,在4里没有的元素
    list3.diff(list4)
    
    // 滑动窗口
    val a = list4.sliding(4, 2)
    for(ele <- a)(
      println(ele)
    )

    集合(Set)

    import scala.collection.mutable.Set // 可以在任何地方引入 可变集合
    
    val mutableSet = Set(1,2,3)
    println(mutableSet.getClass.getName) // scala.collection.mutable.HashSet
    
    mutableSet.add(4)
    mutableSet.remove(1)
    mutableSet += 5
    mutableSet -= 2
    
    println(mutableSet) // Set(5, 3, 4)
    
    val another = mutableSet.toSet
    println(another.getClass.getName) // scala.collection.immutable.Set

    映射(Map)

    object Test {
       def main(args: Array[String]) {
          val colors = Map("red" -> "#FF0000",
                           "azure" -> "#F0FFFF",
                           "peru" -> "#CD853F")
    
          val nums: Map[Int, Int] = Map()
    
          println( "colors 中的键为 : " + colors.keys )
          println( "colors 中的值为 : " + colors.values )
          println( "检测 colors 是否为空 : " + colors.isEmpty )
          println( "检测 nums 是否为空 : " + nums.isEmpty )
       }
    }
  • 相关阅读:
    大型站点技术架构PDF阅读笔记(一):
    【大话QT之十三】系统软件自己主动部署实现方案
    VS编译duilib项目时候的错误解决方法整理
    Missing iOS Distribution signing identity for …, 在打包的时候发现证书过期了。
    Django项目国际化
    Codeforces Round #297 (Div. 2) 525D Arthur and Walls(dfs)
    BZOJ 2209: [Jsoi2011]括号序列 [splay 括号]
    NOIP2016DAY1题解
    清北学堂入学测试P4751 H’s problem(h)
    BZOJ 3173: [Tjoi2013]最长上升子序列 [splay DP]
  • 原文地址:https://www.cnblogs.com/chuijingjing/p/14451474.html
Copyright © 2011-2022 走看看