Scala排序清单
示例
假设以下列表,我们可以采用多种方式进行排序。
val names = List("Kathryn", "Allie", "Beth", "Serin", "Alana")的默认行为sorted()是使用math.Ordering,它对字符串进行字典排序:
names.sorted //结果显示在:列表(Alana,Allie,Beth,Kathryn,Serin)
sortWith允许您使用比较功能提供自己的订购:
names.sortWith(_.length < _.length) //结果显示在:列表(Beth,Allie,Serin,Alana,Kathryn)
sortBy允许您提供转换功能:
//一组元音要使用
val vowels = Set('a', 'e', 'i', 'o', 'u')
//计算名称中元音的功能
def countVowels(name: String) = name.count(l => vowels.contains(l.toLower))
//按元音数量排序
names.sortBy(countVowels)
//结果是:列表(Kathryn,Beth,Serin,Allie,Alana)您始终可以使用`reverse来反转列表或排序列表:
names.sorted.reverse //结果:列表(Serin,Kathryn,Beth,Allie,Alana)
列表也可以使用Java方法java.util.Arrays.sort及其Scala包装器进行排序scala.util.Sorting.quickSort
java.util.Arrays.sort(data) scala.util.Sorting.quickSort(data)
如果可以避免集合转换和拆箱/装箱,则这些方法可以在对较大的集合进行排序时提高性能。有关性能差异的更详细讨论,请阅读有关ScalaCollectionsorted,sortWith和sortByPerformance的信息。
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短