package org.ilp.utils; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Hashtable; import java.util.List; /** * * @ClassName: CollectUtil * @Description: TODO(集合处理工具类) * @author 彭保卫 * @date 2017年6月1日 下午5:19:34 * */ public class CollectUtil { /** * * @Title: getNewData * @Description: TODO(按字段去重) * @param @param results 原有集合 * @param @param fields 去重字段 * @param @return 设定文件 * @return List<?> 去重后的结果集 * @throws * @author 彭保卫 */ public static List<?> getNewData(List<?> results,String... fields) { List<Object> list = new ArrayList<> (); Hashtable<String, Integer> mapper = new Hashtable<String, Integer>(); for (Object object : results) { try { Class<?> clazz = Class.forName(object.getClass().getName()); StringBuffer key=new StringBuffer(); for (String fieldName : fields) { String methodName="get"+fieldName.substring(0, 1).toUpperCase()+fieldName.substring(1, fieldName.length()); Method declaredMethod = clazz.getDeclaredMethod(methodName); String invoke =(String) declaredMethod.invoke(object); key.append(invoke); } String keyValue=key.toString(); Integer integer = mapper.get(keyValue); if(integer==null){ list.add(object); int index = list.indexOf(object); mapper.put(keyValue, index); }else{ int intValue = integer.intValue(); list.remove(intValue); list.add(intValue, object); } } catch (Exception e) { e.printStackTrace(); } } return list; } }
对集合按字段去重
猜你喜欢
转载自pengbaowei0311.iteye.com/blog/2377398
今日推荐
周排行