对于集合的排序,直接的有sort()、间接的有借用compareTo、Comparable等,但是对于相对复杂的对象集合,还得自己实现方法来处理。

现在有这样一个思路:

第一步:从需要排序的对象集合中,用迭代器或者增加循环,提取排序所依据的属性;

第二步:将提取出来的属性,转为可以排序的类型,并排序;

第三步:遍历第二步的结果,内层遍历集合,内层中提取当前对象的排序属性,并转为可比较的类型,和外层对比,相等就加入一个新的对象集合,作为排序结果;

这个思想就像去电影院看电影:不管你什么时候来,只要按照你手上的票的座位号坐好,那最终就是每个人都有序 的找到自己的位置。

嗯,程序人生,人生程序

复杂对象List集合的排序的更多相关文章

  1. 对map集合进行排序

          今天做统计时需要对X轴的地区按照地区代码(areaCode)进行排序,由于在构建XMLData使用的map来进行数据统计的,所以在统计过程中就需要对map进行排序. 一.简单介绍Map   ...

  2. 按bean的属性值对list集合进行排序

    List根据对象的某个属性排序工具类 List排序 import java.util.Collections; import java.util.Comparator; import java.uti ...

  3. java实现两个不同list对象合并后并排序

    工作上遇到一个要求两个不同list对象合并后并排序1.问题描述从数据库中查询两张表的当天数据,并对这两张表的数据,进行合并,然后根据时间排序.2.思路从数据库中查询到的数据放到各自list中,先遍历两 ...

  4. java工具类之按对象中某属性排序

    import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang ...

  5. 对象的比较与排序(三):实现IComparable<T>和IComparer<T>泛型接口

    来源:http://www.cnblogs.com/eagle1986/archive/2011/12/06/2278531.html 1:比较和排序的概念 比较:两个实体类之间按>,=,< ...

  6. 5.4 集合的排序(Java学习笔记)(Collections.sort(),及Arrays.sort()底层分析)

    1.Comparable接口 这个接口顾名思义就是用于排序的,如果要对某些对象进行排序,那么该对象所在的类必须实现 Comparabld接口.Comparable接口只有一个方法CompareTo() ...

  7. 【转载】C#中使用OrderBy和ThenBy等方法对List集合进行排序

    在C#的List操作中,针对List对象集合的排序我们可以使用OrderBy.OrderByDescending.ThenBy.ThenByDescending等方法按照特定的对象属性进行排序,其中O ...

  8. 什么是泛型?,Set集合,TreeSet集合自然排序和比较器排序,数据结构-二叉树,数据结构-平衡二叉树

    ==知识点== 1.泛型 2.Set集合 3.TreeSet 4.数据结构-二叉树 5.数据结构-平衡二叉树 ==用到的单词== 1.element[ˈelɪmənt] 要素 元素(软) 2.key[ ...

  9. (转)Document对象内容集合

    原文:http://webcenter.hit.edu.cn/articles/2009/06-10/06144703.htm document 文挡对象 - JavaScript脚本语言描述 ——— ...

随机推荐

  1. 记录Mac下使用Charles抓包

    抓包 简述 在网络应用如后端系统,app,小程序等的开发过程中,免不了接口可能会报错,但是一般在app中或者小程序中没有便捷的console控制台,而且线上环境也不会开启调试模式,所以想看一下接口的响 ...

  2. docker-harbor私有仓库使用笔记

    1. 登录harbor管理页面,创建项目,比如yuqx_test 2. admin登录,此处免密登录,正常情况下会输入账号密码 [root@k8s-rancher2 ~]# docker login ...

  3. css 文字超出俩行省略号显示

    .center-titles{ overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: ...

  4. vue 上传头像悬浮显示文字

    template部分: 头像外部加一个 div <div class="user-info-head"> </div>   css 部分 <style ...

  5. TypeScript 中函数的理解?与 JavaScript 函数的区别?

    一.是什么 函数是JavaScript 应用程序的基础,帮助我们实现抽象层.模拟类.信息隐藏和模块 在TypeScript 里,虽然已经支持类.命名空间和模块,但函数仍然是主要定义行为的方式,Type ...

  6. PyCharm——滚动鼠标调整字体大小

  7. Python 利用GDAL对图像进行几何校正

    原文链接:https://blog.csdn.net/qq_27045589/article/details/81062586 一.几何校正方法 图像校正本质是建立一种从原始图像行列号到某种投影的数学 ...

  8. 整合ehcache缓存

    一.分布式集群,多态服务器相同的代码,均衡压力: 二. 1.导包,ehcache适用mybatis的jar包: 2.映射配置文件中配置: 3.ehcache配置文件 4.使用代码和mybatis自带的 ...

  9. TCL、华星光电和中环股份,如何在一条生态链上领跑?

    聚众智.汇众力.采众长. "我们决心用五年时间,将TCL科技和TCL实业做到真正的世界500强,将智能终端.半导体显示.半导体光伏三大核心产业力争做到全球领先,将半导体材料等其他产业做到中国 ...

  10. DLL延时加载技术与资源释放

    DLL延时加载技术与资源释放 0x00 前言 诸如调用非Windows的第三方库,我们或许会使用到dll文件,而这个时候原本程序运行需要相应的dll文件才能加载启动.通过DLL延时加载技术,使用延时加 ...