1 /** 2 * 按给定对象属性为参数ls分组整理 3 * @param ls 集合 4 * @param propertyName 对象中的某个属性 5 * @return HashMap(key=propertyValue,Value=ArrayList) 6 * @throws IllegalAccessException 7 * @throws InvocationTargetException 8 * @throws NoSuchMethodException 9 */10 @SuppressWarnings("unchecked")11 public staticHashMap > groupByProperty(List ls,String propertyName) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException{12 HashMap > result=new HashMap >();13 List list=null;14 for (Iterator iter = ls.iterator(); iter.hasNext();) {15 E element = iter.next();16 T proValue=(T)PropertyUtils.getProperty(element, propertyName);17 if(proValue==null)18 throw new NullPointerException("propertyValue is null"); 19 if(result.containsKey(proValue)){20 list=(List ) result.get(proValue);21 }else{22 list=new ArrayList ();23 result.put(proValue, list);24 }25 list.add(element);26 }27 return result;28 }
1 /** 2 * 提取集合中的对象的属性,组合成List. 3 * 4 * @param collection 来源集合. 5 * @param propertyName 要提取的属性名. 6 */ 7 @SuppressWarnings({ "unchecked", "rawtypes" }) 8 public static List fetchElementPropertyToList(final Collection collection, final String propertyName) throws Exception {10 List list = new ArrayList();11 for (Object obj : collection) {12 list.add(PropertyUtils.getProperty(obj, propertyName));13 }14 15 return list;16 }