List根据对象的某个属性排序工具类 List排序

import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import org.apache.commons.beanutils.BeanComparator;
import org.apache.commons.collections.ComparatorUtils;
import org.apache.commons.collections.comparators.ComparableComparator;

public class ListSortUtil {

    /**
    * 按bean的属性值对list集合进行排序
    *
    * @param list
    *            要排序的集合
    * @param propertyName
    *            集合元素的属性名
    * @param isAsc
    *            排序方向,true--正向排序,false--逆向排序
    * @return 排序后的集合
    */
    public static List sortList(List list, String propertyName, boolean isAsc) {
            //借助commons-collections包的ComparatorUtils
            //BeanComparator,ComparableComparator和ComparatorChain都是实现了Comparator这个接口
            if(list!=null && list.size()>0){
                Comparator mycmp = ComparableComparator.getInstance();
                mycmp = ComparatorUtils.nullLowComparator(mycmp);  //允许null
                if(isAsc){
                    mycmp = ComparatorUtils.reversedComparator(mycmp); //逆序
                }
                Comparator cmp = new BeanComparator(propertyName, mycmp);
                Collections.sort(list, cmp);
            }
            return list;
    }
}

按bean的属性值对list集合进行排序的更多相关文章

  1. spring 引用Bean的属性值

    引用Bean的属性值 从Spring3.0开始,可以通过#{beanName.beanProp}的方式方便地引用另一个bean的属性值1.不需要使用PropertyPlaceholderConfigu ...

  2. 7 -- Spring的基本用法 -- 10... 获取其他Bean的属性值;获取Field值;获取任意方法的返回值

    7.10 高级依赖关系配置 组件与组件之间的耦合,采用依赖注入管理:但基本类型的成员变量值,应直接在代码中设置. Spring支持将任意方法的返回值.类或对象的Field值.其他Bean的getter ...

  3. 1-3 Spring Bean 的属性值设置

    详见http://www.cnblogs.com/chenssy/archive/2013/03/17/2964593.html 1.注入普通的属性值 <bean id="Cat&qu ...

  4. day38 14-Spring的Bean的属性的注入:集合属性的注入

    集合:List.Set.Map. package cn.itcast.spring3.demo6; import java.util.List; import java.util.Map; impor ...

  5. SpringXML方式给bean初始化属性值

    可以在Spring容器初始化bean的时候给bean的属性赋初始值,直接在property标签里设置即可 1 2 3 4 5 6 <bean name="user**" cl ...

  6. List中bean某属性值转换为list

    List<类> lst = new ArrayList<>() ; lst.stream().map(类::get需要取得仠的属性名).collect(Collectors.t ...

  7. JAVA里List集合中的对象根据对象的某个属性值降序或者升序排序

    需要使用JDK1.8及以上 package com.stream; import java.util.Comparator; import java.util.List; public class T ...

  8. js 从一个对象中找到属性值相等的集合

    getobjs: function(objs, key, value) { var result = []; for (var i in objs) { var obj = $(objs[i]); i ...

  9. 《精通Spring4.X企业应用开发实战》读后感第六章(引用Bean的属性值)

随机推荐

  1. php框架之我见:php开发到底需不要用框架?

    本来就很好,结果无论软件CMS还是各种框架,都自己制造一套自己的规则! 关键还不通用! 我学PHP语法 语义累了半年好不容易熟悉,结果学个框架又学半年,然后框架升级或者去学其他框架,之前学的又等于没用 ...

  2. 使用CSS和JQuery实现表格单元格内容超出时部分隐藏,隐藏部分以...显示

    1.使用CSS实现,给此单元格添加一个Class: width:130px; display:block; overflow:hidden; word-break:keep-all; white-sp ...

  3. Telegram学习解析系列(二):这我怎么给后台传输数据?

    写在前面: 在iOS开发的过程中,有很多时候我们都在和数据打交道,最基本的就是数据的下载和上传了,估计很多很多的小伙伴都在用AFNetworking与后台数据打交道,可有没有想过,哪天AFNetwor ...

  4. spring-boot整合dubbo:Spring-boot-dubbo-starter

    为什么要写这个小工具 如果你用过Spring-boot来提供dubbo服务,相信使用中有很多"不爽"的地方.既然使用spring boot,那么能用注解的地方绝不用xml配置,这才 ...

  5. jQuery库冲突解决办法

    一次面试中面试官问到jQuery解决怎么冲突?虽然以前看过,但是我已经不记得了. 我的思路就是如果让我来设计,那我就用一个默认值$,不传参数,那就用$,最后就挂载在window.$上,传参数就用传入名 ...

  6. 基于Kubernetes的WAF集群介绍

    Kubernetes是Google开源的容器集群管理系统.它构建Docker技术之上,为容器化的应用提供资源调度.部署运行.服务发现.扩容缩容等整一套功能,可看作是基于容器技术的PaaS平台. 本文旨 ...

  7. Jquery datatable 动态隐藏列(根据有无值)

    一场景: 前端利用datatable初始化的时候会向后端调用数据,需求是 要动态的使某一列根据传回来的一个标志位是否有值来决定显示与否 这是当前传回值有活动优惠幅度的情况下 这是没有活动优惠的情况下 ...

  8. KafKa介绍(分布式架构)

    介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: Kafka将消息以to ...

  9. Docker4Windows -- 从外部(非本机host)访问 由docker container运行的程序

    背景 当我们在windows 上面运行docker container的时候,我们需要借助于模拟器(例如,Virtual box/Hyper V),她的目的主要是在我们的windows系统上面模拟出一 ...

  10. 【JAVAWEB学习笔记】10_JDBC连接池&DBUtils

    使用连接池改造JDBC的工具类: 1.1.1          需求: 传统JDBC的操作,对连接的对象销毁不是特别好.每次创建和销毁连接都是需要花费时间.可以使用连接池优化的程序. * 在程序开始的 ...