zoukankan      html  css  js  c++  java
  • scala的List、Array、ListBuffer、ArrayList、Set、元组区别区别

    1、List  列表:列表长度和内容均不可变,所有元素的类型相同,值一旦被定义了就不能改变,即不可被赋值改变,底层是链表结构。

    scala list 有三个基本操作,head 返回列表第一个元素,tail 返回一个列表,包含除了第一元素之外的其他元素,isEmpty 在列表为空时返回true。

    注意:向List中插入元素,是生成新的list列表。

    list教程:https://www.runoob.com/scala/scala-lists.html

    可变和不可变列表:https://blog.csdn.net/tototuzuoquan/article/details/73825623

    2、ListBuffer :长度内容均可变 的列表。

    https://www.cnblogs.com/drl-blogs/p/11086849.html

    3、Array 数组:数组长度创建时候指定,所有元素类型相同,值可变,可支持索引快速访问指定元素。

     

    https://www.runoob.com/scala/scala-arrays.html

    4、ArrayList 可变数组:

    跟Array很像,除了可以额外地从序列头部或尾部添加或移除元素。

    所有的Array操作在ArrayBuffer都可用。不过由于实现的包装,会稍慢一些。

    新的添加和移除操作平均而言是常量时间,不过偶尔会需要线性的时间,这是因为其实现需要不时地分配新的数组来保存缓存的内容。

    5、Set:

    Scala Set(集合)是没有重复的对象集合,所有的元素都是唯一的。

    Scala 集合分为可变的和不可变的集合

    默认情况下,Scala 使用的是不可变集合,如果你想使用可变集合,需要引用 scala.collection.mutable.Set 包。

    注意: 虽然可变Set和不可变Set都有添加或删除元素的操作,但是有一个非常大的差别。对不可变Set进行操作,会产生一个新的set,原来的set并没有改变,这与List一样。 而对可变Set进行操作,改变的是该Set本身,与ListBuffer类似。

    https://www.runoob.com/scala/scala-sets.html

    6、元组:不可变,但与列表不同的是元组可以包含不同类型的元素。

    https://www.runoob.com/scala/scala-tuples.html

    7、Map 映射:

    Map(映射)是一种可迭代的键值对(key/value)结构。

    所有的值都可以通过键来获取。

    Map 中的键都是唯一的。

    Map 也叫哈希表(Hash tables)。

    Map 有两种类型,可变与不可变,区别在于可变对象可以修改它,而不可变对象不可以。

    默认情况下 Scala 使用不可变 Map。如果你需要使用可变集合,你需要显式的引入 import scala.collection.mutable.Map 类

     https://www.runoob.com/scala/scala-maps.html

     

  • 相关阅读:
    String和StringBuilder和StringBuffer
    多态
    组件
    反向代理
    基础知识
    reflection
    v-model 与 v-bind:model
    tomcat端口占用问题
    socket
    简要概括内存机制
  • 原文地址:https://www.cnblogs.com/guoyu1/p/12091296.html
Copyright © 2011-2022 走看看