Scala 速通语法(九)| 数据结构
2021/10/11 6:16:19
本文主要是介绍Scala 速通语法(九)| 数据结构,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
数据结构
- Scala集合简介
- Scala同时支持不可变集合和可变集合 不可变集合可以安全并发访问
- 不可变集合:scala.collection.immutable
- 可变集合:scala.collection.mutable
- Scala默认采用不可变集合,对于几乎所有的集合类,Scala都提供了可变与不可变版本
- Scala几个有三大类:序列Seq序列(有序性的,Linear、Seq)、集(Set)、映射(Map [key->value]),所有的的集合都扩展自Iterable特质
不可变集合
可变集合
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 速通语法(九)| 数据结构的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享