Scala 中Array,List,Tuple的区别

    虽然学了一段时间的Scala了,但是总觉得基础不是太扎实,还有很多的基础知识比较模糊,于是最近又打算重新学习基础.

    Scala中的三种集合类型包括:Array,List,Tuple.那么到底这三种有哪些异同呢?说实话,我之前一直没弄明白,所以今天特意花了点时间学习了一下.

    相同点:

     1.长度都是固定的,不可变长

     2.早期的Scala版本,Array、List都不能混合类型,只有Tuple可以,2.8版本以后,3者的元素都可以混合不同的类型(转化为Any类型)

    不同点:

     1.Array 中的元素值可变,List和Tuple中的元素值不可变

     2.Array一般是先确定长度,后赋值,而List和Tuple在声明的时候就需要赋值

     3.Array取单个元素的效率很高,而List读取单个元素的效率是O(n)

     4.List和Array的声明不需要new关键字,而Tuple声明需要使用new

     5.当使用混合类型时,Array和List会将元素类型转化为Any类型,而Tuple则保留每一个元素的初始类型

    以上就是我今天所学习到的一些内容,也可能还不是太准确,仅为个人观点,若有不足,欢迎指正.

     参阅:  http://blog.csdn.net/lyrebing/article/details/20362227

时间: 2024-10-07 08:01:44

Scala 中Array,List,Tuple的区别的相关文章

【Todo】【转载】Scala中Array, List, Tuple的区别

参考了这篇文章: https://my.oschina.net/u/1034176/blog/512314 1. 在Scala 2.7中,Array.List都不能混合类型,只有Tuple可以:而在Scala以上版本中,3者的元素都可以混合不同的类型(转化为Any类型),只不过是当使用混合类型时,Array和List会将元素类型转化为Any类型,而Tuple则保留每一个元素的初始类型. 2. 可变性 3. 关于初始化 Array 1) val array= new Array[String](3

Scala 中Array,List,Tuple的差别

尽管学了一段时间的Scala了,可是总认为基础不是太扎实,还有非常多的基础知识比較模糊.于是近期又打算又一次学习基础. Scala中的三种集合类型包含:Array,List,Tuple.那么究竟这三种有哪些异同呢?说实话,我之前一直没弄明确,所以今天特意花了点时间学习了一下. 同样点: 1.长度都是固定的,不可变长 2.早期的Scala版本号,Array.List都不能混合类型,仅仅有Tuple能够,2.8版本号以后,3者的元素都能够混合不同的类型(转化为Any类型) 不同点: 1.Array

scala 关于Array,List,Tuple的区别

在Scala 2.7中,Array.List都不能混合类型,只有Tuple可以:而在Scala以上版本中,3者的元素都可以混合不同的类型(转化为Any类型),只不过是当使用混合类型时,Array和List会将元素类型转化为Any类型,而Tuple则保留每一个元素的初始类型: 关于Array,List,Tuple 关于初始化 1) val array= new Array[String](3) // Array(null, null, null)相当于声明了3个null值的空元素 val arra

Scala中 object 和 class的区别

object 在scala中没有静态方法和静态字段,所以在scala中可以用object来实现这些功能,直接用对象名调用的方法都是采用这种实现方式,例如Array.toString.对象的构造器在第一次使用的时候会被调用,如果一个对象从未被使用,那么他的构造器也不会被执行:对象本质上拥有类(scala中)的所有特性,除此之外,object还可以一扩展类以及一个或者多个特质:例如, abstract class ClassName(val parameter){} object Test exte

Scala中 => Unit 与 () =>Unit的区别

() => Unit ---> 是一个函数:=> Unit --> 是一个执行结果为Unit的表达式 code: => Unit是 by name 传递参数.参数是一个返回值为Unit的代码块.在传递的时候,参数没有被调用.比如: def test(code : => Unit){ println("start") code // 这行才会调用传入的代码块,写成code()亦可 println("end") } test{// 此

Scala中class和object的区别

1.class scala的类和C#中的类有点不一样,诸如: 声明一个未用priavate修饰的字段 var age,scala编译器会字段帮我们生产一个私有字段和2个公有方法get和set ,这和C#的简易属性类似:若使用了private修饰,则它的方法也将会是私有的.这就是所谓的统一访问原则. [java] view plain copy print? //类默认是public级别的 class Person{ var age=18  //字段必须得初始化() def Age=age //这

Scala中的isInstanceOf和asInstanceOf区别

判断对象是否属于某个给定的类,可以用isInstanceOf方法:用asInstanceOf方法将引用转换为子类的引用. obj.isInstanceOf[T]就如同Java的obj instanceof T 判断obj是不是T类型. obj.asInstanceOf[T]就如同Java的(T)obj 将obj强转成T类型. 原文地址:https://www.cnblogs.com/cosmos-wong/p/11441169.html

Scala中的集合:Iterator、BitSet、Set、Map、Stack、Vector、List、Array

 5.   util包 5.1.     架构 http://www.scala-lang.org/docu/files/collections-api/collections.html The following figure shows all collections in package scala.collection. These are all high-level abstract classes or traits, which generally have mutable

转载: scala中span和partition区别

scala中的partition span splitAt groupBy 可把Collection分成:满足条件的一组,其他的另一组. partitionspan List(1,9,2,4,5).span(_<3)       // (List(1),List(9, 2, 4, 5)),碰到不符合就结束 List(1,9,2,4,5).partition(_<3) // (List(1, 2),List(9, 4, 5)),扫描所有 splitAt // (List(1, 3),List(5