list《Object》根据object属性分组

我看了网上的一些方案,但是要么是对某一个已知bean的,要么用反射方法的,我这里引用了一个jar包,来查找属性值,jar包是commons-beanutils-1.9.3.jar,maven依赖的话,大家自行百度吧。


public static Map sortByProperty(Collection collection, String keyPropertyName) {
    //先创建返回的map,并输入所有key值
    Map map = Maps.newConcurrentMap();
    if (CollectionUtils.isNotEmpty(collection)) {
        Iterator var3 = collection.iterator();
        while(var3.hasNext()) {
            Object obj = var3.next();
            try {
                Collection collection1 = (Collection)map.get(PropertyUtils.getProperty(obj, keyPropertyName));
                if(collection1==null){
                    collection1=Lists.newArrayList();
                    collection1.add(obj);
                    map.put(PropertyUtils.getProperty(obj, keyPropertyName), collection1);
                }else {
                    collection1.add(obj);
                }

            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        }
            return map;
    }

返回的map是<属性值类型,Collection >

还有一个小插曲,我的属性值不是String,是个Bean,只好重写了equals方法。

有问题不清楚的可以评论,我没及时查看的话,可以加我qq1213203348

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章