java list 去重 相同的相加_Java List对象集快速去重,并将相同对象的属性相加

前言:如果数据量小的话两个for循环足以解决,博主因为项目中涉及到一个将近70w的List集合去重,刚开始用了两个for循环需要20秒的时间,后来发现这个方法可以只用不超过一秒的时间就能完成去重并且将相同对象的属性相加,下面贴出代码:

先根据要比较的属性排序,将他们放在一起,例如{a,b,c,a,d,b,c} ==> {a,a,b,b,c,c,d}

这样能节省遍历的时间

public static List toBusinessNameHeavyAndScore(List list) {

long a = System.currentTimeMillis();

Collections.sort(list, new Comparator() {

public int compare(Student o1, Student o2) {

return o1.getName().compareTo(o2.getName());

}

});

for (int ia = 0; ia < list.size(); ia++) {//加分去重

int count = 0; //计数器

for (int j = ia + 1; j < list.size(); j++) {

if (list.get(ia).getName().equals(list.get(j).getName())) {

count++;//n位和n+1位对比,如果相同,计数器应该+1

} else { break;}//如果不

你可能感兴趣的:(java,list,去重,相同的相加)