动态排序JavaBean
来源:互联网 发布:网络礼仪图片 编辑:程序博客网 时间:2024/06/06 00:36
Java中如果对对象排序可以考虑实现Comparable接口,但是需要排序的属性一旦指定就不能再修改。BeanUtils组件提供了对JavaBean动态排序的支持,即可以在运行时指定排序的属性。实例运行效果如图
BeanComparator通过指定的属性来比较两个bean。它也可以用来比较级联属性、索引属性、映射属性和组合属性等。BeanComparator默认把指定的bean属性传递给ComparableComparator。如果比较的属性值可能有空值,那么应该传递一个合适的Comparator或ComparatorChain给构造方法。
技巧:利用Collections组件的ComparatorUtils类可以实现含有空值的排序,请读者参考相关的API。
(1)编写Employee类,该类定义了3个域:id表示员工的序号,name表示员工的姓名,salary表示员工的薪水,并且提供了相应的get和set方法。代码如下:
private int id; private String name; private double salary; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } @Override public String toString() { return "员工编号:" + id + ",员工姓名:" + name + ",员工工资:" + salary; }}
(2)编写Test类,在该类的main()方法中创建了3个Employee对象并进行初始化,然后使用salary域进行排序。代码如下:
package com.mingrisoft.beanutils;import java.util.ArrayList;import java.util.Collections;import java.util.List;import org.apache.commons.beanutils.BeanComparator;public class Test { @SuppressWarnings("unchecked") public static void main(String[] args) { Employee employee1 = new Employee();// 创建employee1对象并初始化 employee1.setId(1); employee1.setName("IBM"); employee1.setSalary(10000); Employee employee2 = new Employee();// 创建employee2对象并初始化 employee2.setId(2); employee2.setName("Oracle"); employee2.setSalary(1000); Employee employee3 = new Employee();// 创建employee3对象并初始化 employee3.setId(3); employee3.setName("Sun"); employee3.setSalary(100); List<Employee> list = new ArrayList<Employee>();// 创建list对象并保存全部员工对象 list.add(employee1); list.add(employee2); list.add(employee3); System.out.println("排序前:"); for (Employee employee : list) { System.out.println(employee);// 输出所有对象 } Collections.<Employee> sort(list, new BeanComparator("salary"));// 进行排序 System.out.println("按工资排序后:"); for (Employee employee : list) { System.out.println(employee);// 输出所有对象 } }}
心法领悟:动态排序的原理。
BeanComparator实现了Comparator接口,利用反射根据指定的属性值来排序。使用该类的方法比自己实现该功能要好很多,希望读者认真掌握。
0 0
- 动态排序JavaBean
- 动态生成javaBean,编译
- Spring 动态注入javaBean
- 动态创建JavaBean
- Spring 动态注入javaBean
- 动态代理j及JavaBean
- 使用该JavaBean可以将数据在JSP页面中以表格的形式显示出来,并具有动态排序、动态生成查询、自动分页功能
- 利用cglib给javabean动态添加属性
- 利用cglib给javabean动态添加属性
- 利用cglib给javabean动态添加属性
- 使用xslt动态生成javabean的代码
- 动态创建javabean根据数据库表
- 利用cglib给javabean动态添加属性
- JavaWeb---使用JavaBean动态显示留言
- ToStringBuilder动态列出javabean的信息
- 按照JavaBean中某几个属性排序
- javaBean实现Comparable接口后排序
- JavaBean
- oc中的数组
- 去掉Myeclipse对JS等文件的验证(Cannot return from outside a function or method)
- 局域网内mac地址冲突导致设备网络出现异常状况
- bwlabel函数(二值图像中元素标记)
- 关于ARM伪指令
- 动态排序JavaBean
- 关于健康
- bzoj1488[HNOI2009] 图的同构
- 四级网络工程师试题二
- spring 文件上传
- Hadoop集群环境搭建
- Debug.Mar
- 悦复项目开发问题
- 创建视图(远程数据库的表数据)