java listutils_ListUtils 对 list数据 分组 ,统计,求和 。。。

packagecom.icil.elsardcservice.untils;importjava.lang.reflect.Method;importjava.util.ArrayList;importjava.util.Collection;importjava.util.Date;importjava.util.HashMap;importjava.util.Iterator;importja...
摘要由CSDN通过智能技术生成

packagecom.icil.elsardcservice.untils;importjava.lang.reflect.Method;importjava.util.ArrayList;importjava.util.Collection;importjava.util.Date;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjava.util.Map.Entry;importjava.util.Optional;importjava.util.Set;importjava.util.TreeSet;importjava.util.stream.Collectors;importorg.apache.commons.lang3.StringUtils;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;/*** *************************************************************************

*

 
 

* @ClassName: : ListUtil

*

* @Description: :

*

* @Creation Date : 13 May 2019 2:48:52 PM

*

* @Author : Sea

*

*

*

***************************************************************************/@SuppressWarnings("all")public classListUtil{private static Logger LOGGER=LoggerFactory.getLogger(ListUtil.class);/*** 分组依据接口,用于集合分组时,获取分组

* T为要groupBy属性是类型,这个返回值为要groupBy的属性值*/

public interface GroupBy{

T groupBy(Object obj) ;

}/*** 通过属性对集合分组

*@paramcolls

*@paramgb

*@return* extends Comparable*/

public static final Map> groupBy(Collection colls ,GroupBygb){

Map> map = new HashMap>();

Iterator iter =colls.iterator() ;while(iter.hasNext()) {

D d=iter.next() ;

T t=gb.groupBy(d) ;if(map.containsKey(t)) {

map.get(t).add(d) ;

}else{

List list = new ArrayList() ;

list.add(d) ;

map.put(t, list) ;

}

}returnmap ;

}/*** 通过属性名称对集合分组

*@paramcolls

*@paramfieldName为集合中对象的属性名称

*@return* extends Comparable*/

public static final Map> groupBy(Collectioncolls ,String fieldName){return groupBy(colls,new GroupBy(){

@OverridepublicT groupBy(Object obj){

Object v=getFieldValueByName(obj,fieldName);return(T)v;

}

});

}/*** 通过属性对集合分组,并对blank(null 和“ ” )的数据进行合并

*@paramcolls

*@paramgb

*@return* extends Comparable*/

public sta

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值