Scala 速通语法(九)| 数据结构

数据结构

  • Scala集合简介
    • Scala同时支持不可变集合可变集合 不可变集合可以安全并发访问
    1. 不可变集合:scala.collection.immutable
    2. 可变集合:scala.collection.mutable
    • Scala默认采用不可变集合,对于几乎所有的集合类,Scala都提供了可变与不可变版本
    • Scala几个有三大类:序列Seq序列(有序性的,Linear、Seq)、集(Set)、映射(Map [key->value]),所有的的集合都扩展自Iterable特质

不可变集合

Scala  速通语法(九)| 数据结构

可变集合

Scala  速通语法(九)| 数据结构

Java 集合 和 Scala 集合相互转换

  • 添加 import scala.jdk.CollectionConverters._
  • 使用 asJava 和 asScala 相互转化

  • 转化规则
scala.collection.Iterable <=> java.lang.Iterable
scala.collection.Iterable <=> java.util.Collection
scala.collection.Iterator <=> java.util.{ Iterator, Enumeration }
scala.collection.mutable.Buffer <=> java.util.List
scala.collection.mutable.Set <=> java.util.Set
scala.collection.mutable.Map <=> java.util.{ Map, Dictionary }
scala.collection.mutable.ConcurrentMap <=> java.util.concurrent.ConcurrentMap
scala.collection.Seq  => java.util.List
scala.collection.mutable.Seq => java.util.List
scala.collection.Set  => java.util.Set
scala.collection.Map => java.util.Map
java.util.Properties => scala.collection.mutable.Map[String, String]

元组

  • 简介:元组也是可以理解为一个容器,可以存放各种相同或不同类型的数据 类似C++结构体

注:元组种最大只能22个元素

  • 元组的创建
      //元组创建
      val tuple = (1,2,"test",3.4,5.7f,'a')
      println(tuple.getClass.getName)
      //元组调用
      println(tuple._1+"---"+tuple._5)
      println(tuple.productElement(3))
      //元组遍历
      for(item<-tuple.productIterator){
        println(item)
      }
    

List

  • 在Java 中List 是一个接口,真正存放数据是ArrayList,Scala的List 可以直接存放数据,就是一个object,默认情况下Scala 的List 是不可变的,List 属于序列Seq

Array 数组

  • 定长数组
  • 这里的数组等同于 Java 中的数组,中括号的类型就是数组的类型
  //创建Array方式1
  val arr1 = new Array[Any](10)
  //创建Array方式2
  val arr2 = Array(1,"3",3.3,'w')
  //修改
  arr1(3) = "333"
  //遍历
  for(i <- arr1){
    println("i====="+i)
  }
  • 变长数组
上一篇:Scala基础


下一篇:Scala从入门到精通04之集合