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

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