根据List中单个对象的某方法进行去重

public static void main(String[] args){List<TQxtjEntity> list = new ArrayList<TQxtjEntity>();TQxtjEntity t1 = new TQxtjEntity("n1","1");TQxtjEntity t2 = new TQxtjEntity("n2","2");TQxtjEntity t3 = new TQxtjEntity("n2","2");TQxtjEntity t4 = new TQxtjEntity("n3","2");TQxtjEntity t5 = new TQxtjEntity("n1","3");TQxtjEntity t6 = new TQxtjEntity("n1","3");list.add(t1);list.add(t2);list.add(t3);list.add(t4);list.add(t5);list.add(t6);List<TQxtjEntity> li = removeRepeat(list,"com.kingtopinfo.qxgl.entity.TQxtjEntity","getName");System.out.println(li.size());}/** * 根据oldList中单个对象的某方法进行去重 * @param oldList * @param className * @param methodName * @return */private static <T> List<T> removeRepeat(List<T> oldList,String classALLName,String methodName){try {//①找到类:Class cl = Class.forName(classALLName);//②创建对象(要求这个类中含有空参数的构造方法):Object obj = cl.newInstance();//③根据名称和参数找方法:Method method1 = cl.getMethod(methodName);//④在某个对象上面执行方法,//Object result = method1.invoke(obj);List<T> newList = new ArrayList<T>();for(int i=0; i<oldList.size(); i++){boolean tf = false;for(int j=0; j<newList.size(); j++){if(method1.invoke(newList.get(j)).equals(method1.invoke(oldList.get(i)))){tf = true;break;}}if(!tf){newList.add(oldList.get(i));}}return newList;} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}

版权声明:本文为博主原创文章,未经博主允许不得转载。

,生命太过短暂,今天放弃了明天不一定能得到

根据List中单个对象的某方法进行去重

相关文章:

你感兴趣的文章:

标签云: