前面已经介绍了Array和List,这里讲讲其他有用的Collection已经相互转换。
序列
Array和List都属于序列(Sequence)。List支持从head插入,如果需要append,考虑使用ListBuffer。ListBuffer是mutable的类型。支持constant time的从前和从后插入。从前使用+=:
,从后使用+=
。ArrayBuffer和ListBuff相似,不再赘述。
import scala.collection.mutable.ListBuffer
val buf = new ListBuffer[Int]
buf += 1
buf +=: 2
除了Array和List外,Scala中的String也是序列。
Set,Map
Set和Map,默认是immutable,除非显示指明。
import scala.collection.mutable
val mutaSet = mutable.Set(1, 2, 3)
val map = mutable.Map.empty[String, Int]
SortedMap和SortedSet,顾名思义,其元素或key是有序的。
Set可以通过toList
和toArray
方法转换为List或者Set
通过空集,可以实现immutable和mutable的转换。
val mutaSet = mutable.Set.empty ++= treeSet
val immutaSet = Set.empty ++ mutaSet
元组
和Array,List不同,Tuple(元组)中的对象可以有不同的类型。元组的一个典型应用就是返回多个对象。比如在统计文本时,需要返回词和其所在位置。