scala: operación de entrada simple para colecciones

Operaciones de cobranza en Scala

Documentación oficial de Scala: https://docs.scala-lang.org/tour/basics.html

       1. Matriz

              Crea una matriz:

             Recorrido de matriz:

            Matriz bidimensional:

     2.Lista

    

//      创建list 并初始化数据
      var list = List(1,2,3)
//      在list首部,添加一个元素,并返回一个新集合
      var list2 = list.+:(4)   // List(4, 1, 2, 3)
//      同上
      var list3 = list.::(5)   //List(5, 1, 2, 3)
//      添加一个集合,返回一个新的集合,(合并)
      var list4 = list.:::(List(4,5))  // List(4, 5, 1, 2, 3)

//      获取指定下坐标下的值 或者list apply 0 或者 list(index)
      var a = list.apply(0)          // 1
//     返回 除了第 n个 元素之前 的 集合
      var list5 = list.drop(2)       //List(3)

//      修改指定位置并返回一个新集合(index,newValue)
      var list6 = list.updated(1,10)

//    count 统计计算符合条件的元素的个数
      var sum = list.count(_%2==0)   // 1  就一个2
//    filter 过滤 元素-1 后的值大于0,返回一个集合
      println(list)
      var list7 = list.filter(_-1>0)  // List(2,3)
//     map 遍历元素,并操作 根据操作得到的值 返回值类型
      var list8 = list.map(_+10+"得到的值") //List(11得到的值, 12得到的值, 13得到的值)
        println(list8)

//      循环遍历
      list.foreach(s => print(s + " "))

      for (i <- 0 until list.size) {
          println(list(i))
      }
      for (elem <- list) {
          println(elem)
      }
//      flatmap 扁平化 遍历操作
      val list9 = List(
          "hello world",
          "hello xiaodu",
          "good !!"
      )
        val aa = list9.flatMap{s => s.split(" ")} //aa = List(hello, world, hello, xiaodu, good, !!)
        println("aa = " + aa)

       3. establecer

//     set 中的元素不可重复,无序的
    val set = Set(1,2,3)
    val set1 = Set(3,4,5)
    val set2 = Set(1,2)
    println(set.+(1))  // Set(1, 2, 3); 添加一个元素,会自动去重
    println(set.+(3,4,5,6,7,8,9,0))  // 添加多个
//    交集
    println(set.intersect(set1))  //Set(3)
//    差集
    println(set.diff(set1))  // Set(1, 2);set 对于set1 的差集
//    子集  包含关系
    println(set2.subsetOf(set)) // set2 是否是set 的子集,返货boolean
//
    println(set.max) // 最大
    println(set.min) // 最小
//    转换为 数组
    val arr = set.toArray
//    转换为list
    val list = set.toList
//    mkstring, 把元素都转换为string ,并以一定的格式拼接
    println(set.mkString("@"))

//    遍历
    set.foreach(println)
    for (elem <- set) {
      println(elem)
    }
    set.map(s => println(s))

Operación del mapa

 

/创建
    val map = Map(
      ("a",1),
      "b" -> 2,
      ("c",3)
    )
// map 操作
    println(map.get("a").get)  // 通过key获取value
    println(map.get("a").getOrElse("not value")) //进行非空判断,空的时候返回not value

//    遍历
    for (elem <- map) {
      print("key : " + elem._1+ "  ") // 获取key
      println("value : " +elem._2 +"  ") // 获取value
    }
//    获取所有key
    println("keys = " + map.keys)
//    获取所有value
    println("values = " + map.values)
//    通过keys遍历 获取value
    for (elem <- map.keys) {
          println(map.get(elem).getOrElse("not value"))
    }
//  迭代器遍历
    var iter = map.iterator
    while(iter.hasNext) {
      var next = iter.next()
      println("key : " + next._1 +" = value : "+next._2)
    }
//  map 合并
    var map2 = Map(
      ("d",4),
      "e" -> 5
    )
    map.++(map2).foreach(println) // map2添加到头(push)
//  过滤  key== a
    map.filter(_._1.equals("a")).foreach(println) //(a,1)
//    count 统计
    var count = map.count(_._2>2)
    println("value > 2  的数量:" + count)
//  exit 返回Boolean
    println(map.exists(_._1=="a"))

Tupla: tupla

//    创建  最多支持22个 可以支持任意类型
    var tup1 = Tuple1(1)
//    相当于map
    var tuple2 = Tuple2(("a",1),("b",2))
    var tuple3 = new Tuple3(1,2,3)
//    ...
    var tuple22 = Tuple22(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22)
// 取值
    println(tuple3._3)
    println(tuple2._1._1)
//    遍历
    var iter = tuple3.productIterator
    while (iter.hasNext) {
      println( "tuple3中value = " + iter.next())
    }
    var iter2 = tuple2.productIterator
    while (iter2.hasNext) {
      println(iter2.next())
    }
//    swap 顺序反转, tuple2才能使用
    println(tuple2.swap)

 

Supongo que te gusta

Origin blog.csdn.net/xiaodujava/article/details/89047843
Recomendado
Clasificación