斯卡拉:为什么没有排序?

时间:2017-01-20 10:59:04

标签: scala

我想知道为什么Scala sortBy上没有Set方法,因为它SeqList,因为它也扩展了Iterable。 ..

1 个答案:

答案 0 :(得分:4)

Set有点有序(这就是为什么它是Iterable)但没有排序的元素集合。 如果要对元素进行排序,则必须使用SortedSet实现(TreeSet),您可以在创建新实例时提供排序

更新:有序和有序之间的区别并不是很清楚:你可以说List是有序但可能没有排序,Map是无序和未排序的,但是Map的实现需要将其元素保存在内存中( RAM,磁盘,您需要的任何支持)以及该内存始终是有序的,因此它为任何集合提供了一些订单(例如,插入订单或存储顺序)。

Scala API中可以看到这种未定义的示例:定义SortedSet时,构造函数为:

new TreeSet()(implicit ordering: Ordering[A])

所以"排序"用来代替"排序"