Commons - BeanUtils 提供了很多功能,其中一个很有用的是对对象集合进行排序,如Collections.sort(peoples, new BeanComparator("age"));

另外,可以使用java.util.Collections的sort方法可以对collection集合进行排序,包括多列组合排序,下面是自己实现java.util.Comparator,定制对象属性排序规则的例子:

package com.lph.test;

import java.util.Comparator;

import java.util.Iterator;

import java.util.List;

import java.util.LinkedList;

/**

*

* 自定义对象多属性(多列)组合排序

*

Title: is a Class

*

*

Description: 类

*

*

Copyright: Copyright (c) 2006

*

*

Company: sunrise

*

* @author islph

* @version 1.0

*/

public class CompositeComparator implements Comparator {

/** in the condition list, comparators' priority decrease from head to tail */

private List comparators = new LinkedList();

/** get the comparators, you can manipulate it as need. */

public List getComparators() {

return comparators;

}

/** add a batch of comparators to the condition list */

public void addComparators(Comparator[] comparatorArray) {

if (comparatorArray == null) {

return;

}

for (int i = 0; i < comparatorArray.length; i++) {

comparators.add(comparatorArray[i]);

}

}

/** compare by the priority */

public int compare(Object o1, Object o2) {

for (Iterator iterator = comparators.iterator(); iterator.hasNext();) {

Comparator comparator = (Comparator) iterator.next();

int result = comparator.compare(o1, o2);

if (result != 0) {

return result;

}

}

return 0;

}

}

// 多列排序;按属性COUNTY_NO镇,DDP_ID终端 组合排序

CompositeComparator myComparator = new CompositeComparator();

myComparator.addComparators(

new Comparator[] {

new Comparator() {

public int compare(Object a, Object b) {

DisplayForm aObj, bObj;

aObj = (DisplayForm) a;

bObj = (DisplayForm) b;

String aStr = (String) aObj.get("COUNTY_NO");

String bStr = (String) bObj.get("COUNTY_NO");

return aStr.compareTo(bStr);

}

}

, new Comparator() {

public int compare(Object a, Object b) {

DisplayForm aObj, bObj;

aObj = (DisplayForm) a;

bObj = (DisplayForm) b;

String aStr = (String) aObj.get("DDP_ID");

String bStr = (String) bObj.get("DDP_ID");

return aStr.compareTo(bStr);

}

}

});

java.util.Collections.sort(listResult, myComparator);

标签 :java

IT瘾于2006年10月13日 下午11时03分42秒发布

#

java util包排序_实现java.util.Comparator接口,对对象集合进行多属性组合排序相关推荐

  1. java更改包名称_更改Java包名称如何改变我的系统架构

    java更改包名称 即使只是少量更改角度,也可能对您如何使用系统产生深远影响. 假设您正在用Java编写Web应用程序. 在系统中,您处理订单,客户和产品. 作为一个Web应用程序,您的类包括诸如Co ...

  2. java linkedlist排序_用Java对用户定义对象的LinkedList进行排序

    要使用Java对列表进行排序,可以使用sort(List list) 方法.此方法可以对所有元素必须实现Comparable接口的列表进行排序. 在下面的示例中,House类是用户定义的.为了使其具有 ...

  3. java集合按大小排序_List集合对象中按照不同属性大小排序的实例

    实例如下: package com.huad.luck; import java.util.arraylist; import java.util.collections; import java.u ...

  4. java修炼之道_《Java程序员修炼之道》

    第2章 新I/O 本章内容: --新I/O API(NIO.2) --Path:基于文件和目录的I/O新基础 --Files应用类和各种辅助方法 --如何实现常见的I/O应用场景 --介绍异步I/O ...

  5. java序列化的方法_【Java常见序列化与反序列方法总结】

    人和电脑在很多方面都是十分相似的,大脑可以看成电脑主机,五官/身体等表面器官就是显示器.鼠标等外设.这篇文章就是想把计算机跟人做类比YY一下序列化和反序列化的机制.用途. 如果你是初学者,心里肯定会问 ...

  6. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  7. 递归实现对多层嵌套的对象数组依照某属性进行排序

    <script>//开发中如果需要对多层嵌套的对象数组依照某个属性进行排序,可以使用递归的方法实现//比如需要对数组里面每一层的importSum属性值进行排序const arr = [{ ...

  8. java数组给名字排序_用Java给数组排序

    public class BubbleDemo { public static void main(String[] args) { int arr[]={1,3,5,7,2,4,6,8,9}; bu ...

  9. java 包命名_【Java】包的命名规则

    命名规范 包:所有单词的字母小写,之后每个单词用-隔开,如 org.nemo.demo 常量:所有单词的字母大写,之后每个单词用_隔开,如 FLAG 类:所有单词的首字母大写,如 TestJava p ...

最新文章

  1. HDU1212(大数取模-秦九昭算法)
  2. mysql触发器和存储过程_MySql的存储过程和触发器
  3. 读取excel文件错误
  4. CentOS密码忘记后的操作
  5. zend server 配置问题 ZendEnablerConf.xml
  6. 音视频技术开发周刊 94期
  7. HDU 5942 2016CCPC杭州 J: Just a Math Problem(莫比乌斯函数)
  8. ZOJ 3209 Treasure Map DLX
  9. Typecho中的gravatar头像无法加载
  10. 这5小段代码轻松实现数据可视化(Python+Matplotlib)
  11. 【Tensorflow教程笔记】常用模块 tf.data :数据集的构建与预处理
  12. plsql导出oracle数据库表结构及表数据
  13. 《Python知识手册》V2.1版,高清PDF免费获取
  14. ssis 抽取mysql 实验_SSIS探索之SSIS增量抽取数据
  15. Scrum中的软件测试指南
  16. 代码女神利用Python网络爬虫爬取淘宝评论区数据(用小本本记下来)
  17. 【微信小程序】深入学习小程序基本目录文件与代码结构
  18. 从广告图到广告落地页
  19. Linux实战(20):Docker部署EKL入门环境记录文档
  20. 什么是软文推广?如何才能把软文推广的更好呢?

热门文章

  1. Hbase教程(二) Hbase数据库Shell命令
  2. 文本聚类算法Java实现
  3. ORACLE查询基本语句
  4. 从一个运维人员的角度看微盟的这次删库跑路的节奏
  5. WPS JS宏表格定位实例
  6. cj20n sap 报错未知列的名称_sapps操作手册
  7. EXCEL中日期的加减函数
  8. 数据结构 严薇敏 顺序表的实现(增 删 改)及其使用方法详解
  9. java登录界面代码
  10. 微信小程序中播放海康萤石云HLS '.m3u8'视频 video标签