scala入门06 集合的排序
来源:互联网 发布:网络信号避雷器 编辑:程序博客网 时间:2024/06/05 02:55
在java里面集合排序有comparable和compator,在scala里面也有类似的接口,下面写个List简单排序的demo:
结构如下(就一个demo 和 隐式转换的mypredef):
demo01如下(分别有三个方法的demo sortWith,sorted和sortby):
package cn.touna/** * User: lijie */class Demo01 {}object Demo01 { def main(args: Array[String]): Unit = { //sortWith------------------ val list01 = List[Person](new Person("lijie3", 25), new Person("lijie0", 99), new Person("lijie1", 24), new Person("lijie1", 1)) val order01 = list01.sortWith((p1: Person, p2: Person) => { p1.name == p2.name match { case false => p1.name.compareTo(p2.name) < 0 case _ => p1.age > p2.age } }) for (x <- order01) { println("list01:" + x) } //sorted-------------------- val list02 = List[Person](new Person("lijie3", 25), new Person("lijie0", 99), new Person("lijie1", 24), new Person("lijie1", 1)) //引入隐式转换 import MyPredef.Person2Comparable val order02 = list02.sorted for (x <- order02) { println("list02:" + x) } //sortby-------------------- val list03 = List[Person](new Person("lijie3", 25), new Person("lijie0", 99), new Person("lijie1", 24), new Person("lijie1", 1)) val order03 = list03.sortBy(p => p) for (x <- order03) { println("list03:" + x) } }}class Person(var name: String, var age: Int) { override def toString = s"Person($name, $age)"}
predef如下:
package cn.touna/** * User: lijie */object MyPredef { implicit object Person2Comparable extends Ordering[Person] { override def compare(x: Person, y: Person): Int = { x.name == y.name match { case false => x.name.compare(y.name) case _ => y.age - x.age } } }}
执行结果如下:
阅读全文
0 0
- scala入门06 集合的排序
- scala集合排序
- Scala入门之集合
- 【scala 代码片段2】轻松入门scala--列表的操作以及集合元素映射
- 【scala 代码片段3】轻松入门scala--集合的操作交并补
- scala的集合基础
- 关于scala的集合
- 4. scala的集合
- Scala入门--集合的使用及对集合操作的函数的使用
- scala List集合的用法
- scala List集合的用法
- Scala集合
- Scala集合
- Scala 集合
- Scala集合
- scala集合
- Scala集合
- scala 集合
- 程序员,为什么写不好一份简历?
- JavaScript-回调函数
- 7月19号牛客网做题笔记
- 一个new失败问题的查找过程
- [PHP]链式调用
- scala入门06 集合的排序
- HDU 5769 Substring (后缀数组)
- hdu 1495 非常可乐
- ESP8266 UDP通信
- 这碗毒鸡汤你得喝
- TabHost相关
- Canvas实现弹幕
- Sql Sever系列设置编辑所有行
- hdu 1969 Pie