Scala所有集合对比

2020/10/17 Scala 共 1122 字,约 4 分钟
梦境迷离

不可变函数式集合

本质上在Java中无完全与Scala不可变集合对应的集合,这里列举只是因为功能相似(并且尽量是同级别的)。

#类型父类型apply()实现constant time or nearthread safetyJava中类似
SeqtraitSeqListBufferlast、length、update、append、toList-ArrayList
IndexedSeqtraitIndexedSeqVectorBuilderlength、apply--
LinearSeqtraitLinearSeqListBufferhead、tail--
RangeclassIndexedSeq----
NumericRangeabstract classIndexedSeq----
Listabstract classLinearSeqListBufferprepend、head、tail-AbstractList
QueueclassLinearSeqListBufferenqueue、dequeue-Queue*
VectorclassIndexedSeqVectorBuilderupdate、append、prepend-Vector(thread safety)
MaptraitMapMapBuilder -Map
SortedMaptraitSortedMapMapBuilder -SortedMap
HashMapclassMapMapBuilder -HashMap
TreeMapclassSortedMapMapBuilder -TreeMap
TrieMapclassMapMapBuilder -
ListMapclassMapMapBuilderlast、init-LinkedHashMap
SettraitSetGenSetFactory -Set
SortedSettraitSortedSetSetBuilder -SortedSet
ListSetclassSetGenSetFactorylast、init-LinkedHashSet
HashSetclassSetGenSetFactory -HashSet
BitSetabstract classSortedSet、BitSetBuilder -BitSet
TreeSetclassSortedSetSetBuilder -TreeSet
RedBlackTreeobjectTree- --

虽然文档没有明确不可变集合的多线程下的安全性,一般的:对于不可变集合若其自身仅包含不可变元素,那么在多线程中应该是线程安全的,而里面的元素如果是可变的,那么集合仍然可能是非线程安全的。

TODO

文档信息

Search

    Table of Contents