如何实现排序

向某些可以排序的类传入一个Comparator的接口,这个接口中的compare可以实现排序功能,默认从小到大排序

如果是(o1, o2) -> o1 - o2,从小到大排序
如果是(o1, o2) -> o2 - o1,从大到小排序

匿名内部类

一个方法中传入接口时,可以new一个接口并且重写接口里的方法

public class MainTest {@Testpublic void whatTest(){MainTest.catSay(new what() {@Overridepublic void cat() {System.out.println("cat say what das fox say!");}});}public static void catSay(what w){w.cat();}
}interface what{void cat();
}

使用lambda表达式可以让其实现的更加简单括号里面是参数,右边是重写的方法,如果只有一条语句或者只有返回值,不用写大括号

MainTest.catSay(() -> System.out.println("cat say lambda"));

自然排序

在构造储存对象类的时候实现Comparable接口,并重写compareTo方法,在集合中使用add方法向集合中添加元素的时候,集合会自动排序

选择排序

在定义集合对象时传入自定义比较器Compartor,需要实现比较器中的compare方法,在集合中使用add方法进行排序

使用sort方法排序

在Arrays中的sort方法可以排序任何数组
在Collations中的sort方法可以排序大多数集合(不能排序HashMap)

        ArrayList<Integer> l = new ArrayList<>();l.add(5);l.add(3);l.add(13);l.add(9);l.add(1);Collections.sort(l, (o1, o2) -> o1 - o2);

其中集合是可以传入数组的,所以也可以实现按数组的一号元素、二号元素等大小进行排序

如何使用lambda实现集合排序相关推荐

  1. Java List 排序 :Lambda表达式sort排序

    前言 java 1.8+ Lambda表达式sort排序 // 获取一组Book实例 List<Book> bookList = ...;// 按Book的出版日期正序排序(ASC) Li ...

  2. java怎么给list集合排序_java list集合排序按某一属性排序操作

    我就废话不多说了,大家还是直接看代码吧~ public List sortList(List list){ Collections.sort(list, new Comparator(){ @Over ...

  3. 【Java基础篇】集合排序

    所谓集合排序是指对集合内的元素进行排序. 集合工具类Collections中提供了两种排序算法,分别是: Collections.sort(List list) Collections.sort(Li ...

  4. java8新特性:对map集合排序

    一.简单介绍Map 在讲解Map排序之前,我们先来稍微了解下map,map是键值对的集合接口,它的实现类主要包括:HashMap, TreeMap, Hashtable以及LinkedHashMap等 ...

  5. java 集合排序方法_java集合排序方法sort的使用

    转自  http://blog.csdn.net/a1165117473/article/details/6965652 /* * To change this template, choose To ...

  6. 写了一个对象集合排序的类

    写了一个对象集合排序的类 废话不多说,首先是定义一个对象实体类     class Entity     {         public Entity()         {}         pr ...

  7. 使用stream流进行集合排序取最大值,根据集合中的bigdemal属性排序(正序反序)并取最大值

    业务: 求折线图的UPH图相关数据,前端动态修改纵轴的峰值,需要后端获取最大值 1)根据集合某个属性(业务以bigdecimal数据为例)进行集合排序,包括升序反序 2)根据集合的某个number数值 ...

  8. Java集合排序及java集合类详解

    Java集合排序及java集合类详解 (Collection, List, Set, Map) 摘要内容 集合是Java里面最常用的,也是最重要的一部分.能够用好集合和理解好集合对于做Java程序的开 ...

  9. Scala中的集合排序

    Scala中的集合排序 在scala中,排序不再像java中的那么复杂,除了Map之外,其他的集合类型都可以使用自己的排序方法,排序方法主要有三个: 1.sorted 2.sortWith 3.sor ...

  10. java8新特性:对map集合排序,根据key或者value操作排序(升序、降序)

    java8新特性:对map集合排序,根据key或者value操作排序(升序.降序) 直接上代码: package com.drew.test; import java.util.List; impor ...

最新文章

  1. android 图片压缩方法分析
  2. 揭秘:深度网络背后的数学奥秘
  3. Redis实战(2)安装和试用
  4. 怎么理解java面向对象_Java 面向对象理解?
  5. FPGA详细芯片结构
  6. 轻松搭建博客平台-开源ASP.NET 博客Subtext 的安装
  7. 承重柱怎么做_怎么区分农村自建房中的圈梁和承重梁?了解这几点
  8. ASP.NET-第一天-HTML基础
  9. HTML5 中的canvas元素用于,HTML5中的Canvas元素
  10. Java22-day13【Lambda表达式(标准格式、练习、注意事项)、接口组成更新(默认-静态-私有方法)、方法引用(构造器)】
  11. MySQL_管理与维护
  12. 学习码 滚动码 固定码 有什么区别重码数,编码容量滚动码的原理
  13. 2021-2027全球与中国兽医临床试验业务市场现状及未来发展趋势
  14. cisco设备与基本操作
  15. Nginx -- SSL模块
  16. MySQL游标无法获取数据-1329 - No data - zero rows fetched, selected, or processed
  17. MOOC - 数据库系统概论(基础篇)- 第二次考试
  18. r语言和python爬虫谁厉害_R vs Python: 谁是最好的数据科学语言?
  19. java前端插件有哪些,前端常用插件、工具类库汇总(上)
  20. PHP的Imagick拓展安装

热门文章

  1. n9100 分区 Linux,​史上最全的三星N9100官方固件
  2. 下了一个游戏说计算机丢失,冰封64位win10系统下启动游戏提示计算机丢失XINPUT1-3.dll怎么办...
  3. Vue安装环境最全教程,傻瓜式安装
  4. 永磁同步电机的矢量控制策略(十二)一一一MTPA最大转矩电流比控制
  5. 为什么经转速环PI之后的输出量是电流(基于MTPA分析,内含代码)
  6. 基于SPM8或CAT12进行的VBM分析
  7. 通用的电子商务商城后台管理界面模板——后台
  8. OAuth2资源服务器
  9. cad安装日志文件发生错误_cad安装出现错误 - 卡饭网
  10. 基于校园图书管理系统需求分析