我想知道为什么Scala sortBy
上没有Set
方法,因为它Seq
或List
,因为它也扩展了Iterable
。 ..
答案 0 :(得分:4)
Set
有点有序(这就是为什么它是Iterable)但没有排序的元素集合。
如果要对元素进行排序,则必须使用SortedSet
实现(TreeSet
),您可以在创建新实例时提供排序
更新:有序和有序之间的区别并不是很清楚:你可以说List是有序但可能没有排序,Map是无序和未排序的,但是Map的实现需要将其元素保存在内存中( RAM,磁盘,您需要的任何支持)以及该内存始终是有序的,因此它为任何集合提供了一些订单(例如,插入订单或存储顺序)。
Scala API中可以看到这种未定义的示例:定义SortedSet时,构造函数为:
new TreeSet()(implicit ordering: Ordering[A])
所以"排序"用来代替"排序"