不可变函数式集合
本质上在Java中无完全与Scala不可变集合对应的集合,这里列举只是因为功能相似(并且尽量是同级别的)。
# | 类型 | 父类型 | apply()实现 | constant time or near | thread safety | Java中类似 |
---|---|---|---|---|---|---|
Seq | trait | Seq | ListBuffer | last、length、update、append、toList | - | ArrayList |
IndexedSeq | trait | IndexedSeq | VectorBuilder | length、apply | - | - |
LinearSeq | trait | LinearSeq | ListBuffer | head、tail | - | - |
Range | class | IndexedSeq | - | - | - | - |
NumericRange | abstract class | IndexedSeq | - | - | - | - |
List | abstract class | LinearSeq | ListBuffer | prepend、head、tail | - | AbstractList |
Queue | class | LinearSeq | ListBuffer | enqueue、dequeue | - | Queue* |
Vector | class | IndexedSeq | VectorBuilder | update、append、prepend | - | Vector(thread safety) |
Map | trait | Map | MapBuilder | - | Map | |
SortedMap | trait | SortedMap | MapBuilder | - | SortedMap | |
HashMap | class | Map | MapBuilder | - | HashMap | |
TreeMap | class | SortedMap | MapBuilder | - | TreeMap | |
TrieMap | class | Map | MapBuilder | 是 | - | |
ListMap | class | Map | MapBuilder | last、init | - | LinkedHashMap |
Set | trait | Set | GenSetFactory | - | Set | |
SortedSet | trait | SortedSet | SetBuilder | - | SortedSet | |
ListSet | class | Set | GenSetFactory | last、init | - | LinkedHashSet |
HashSet | class | Set | GenSetFactory | - | HashSet | |
BitSet | abstract class | SortedSet、BitSet | Builder | - | BitSet | |
TreeSet | class | SortedSet | SetBuilder | - | TreeSet | |
RedBlackTree | object | Tree | - | - | - |
虽然文档没有明确不可变集合的多线程下的安全性,一般的:对于不可变集合若其自身仅包含不可变元素,那么在多线程中应该是线程安全的,而里面的元素如果是可变的,那么集合仍然可能是非线程安全的。
流
TODO
文档信息
- 本文作者:梦境迷离
- 本文链接:https://blog.dreamylost.cn/scala/Scala-Scala%E6%89%80%E6%9C%89%E9%9B%86%E5%90%88%E5%AF%B9%E6%AF%94.html
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)