深入探索Scala集合框架:原理、实现与应用
1. Scala集合与Java集合的转换
Scala集合与Java集合之间存在着特定的转换关系,如下表所示:
| Scala集合类型 | 对应的Java集合类型 |
| — | — |
| Seq | java.util.List |
| mutable.Seq | java.util.List |
| Set | java.util.Set |
| Map | java.util.Map |
需要注意的是,由于Java在类型上不区分可变和不可变集合,从Scala的不可变集合(如 collection.immutable.List
)转换为Java集合(如 java.util.List
)后,对该Java集合进行的所有可变操作都会抛出 UnsupportedOperationException
。示例代码如下:
scala> val jul: java.util.List[Int] = List(1, 2, 3)
jul: java.util.List[Int] = [1, 2, 3]
scala> jul.add(7)
java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:131)
2. Scala集合的设计理念
Scala集合采用提