Scala在泛型上有哪些方面比Java更加好用

2025-05-08 22:40:25
推荐回答(2个)
回答1:

泛型是一种可以让你使用类型参数的设施。例如当一个程序员正在实现一个链表时,将不得不面对诸如如何决定链表中节点保存数据的类型之类的问题。正由于这是一个链表,所以往往会在不同的环境中使用,因此,我们不能草率的决定节点数据类型,比如说Int。这种决定是相当的草率且局限性的。
以前Java程序员们通常使用Object,所有类型的超类,来解决问题。但是这种方法远远算不上是理想方案,例如他无法处理基本类型如int、long、float等(1.6中的autobox特性可以解决这个问题——译者注),而且会让使用者不得不使用大量的动态类型转换。
Scala中的泛型机制可以很轻松的解决这些个问题。来看下面这个最简单的容器类:一个引用,可以指向某个对象或者指向空。

回答2:

差异比较明显

Array是定长的,按照文档说明为:
Array[T] is Scala's representation
for Java's T[].
Array存在下标越界访问的风险

而List是变长的

从效率上看,按下标访问Array快,List慢。
在头部插入,Array慢,List快。
另外,Array是mutable的,而List既有mutable的,也有unmutable的。