存在一个对象,用两个属性name和num,要求name相同的值,value相加输出
User:
package action;
public class User {
private String name;
private int num;
public User(){}
public User(String name,int num){
this.name = name;
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
实现方法:
public class Test24 {
public static void main(String[] args) {
List<User> list = new ArrayList<User>();
list.add(new User("a",1));
list.add(new User("a",7));
list.add(new User("b",5));
list.add(new User("c",1));
list.add(new User("c",6));
list.add(new User("c",3));
list.add(new User("c",13));
list.add(new User("d",8));
list.add(new User("d",13));
list.add(new User("c",12));
list.add(new User("a",13));
list.add(new User("b",11));
list.add(new User("c",13));
List<User> userList = new ArrayList<User>();
for(int i = 0; i < list.size(); i++){
String tmp = list.get(i).getName();
int k = list.get(i).getNum();
for(int j = i+1; j < list.size();j++){
if(tmp.equals(list.get(j).getName())){
k += list.get(j).getNum();
//遍历完成后,要删除User的name相同的数据
list.remove(list.get(j));
//remove一个元素时,要把遍历的指针减一
j--;
}
}
userList.add(new User(list.get(i).getName(),k));
}
for(int i = 0;i<userList.size();i++){
System.out.print(userList.get(i).getName() + " ");
System.out.print(userList.get(i).getNum());
System.out.println();
}
}
本文介绍了一种使用Java集合处理重复对象并累加数值字段的方法,通过遍历List集合,比较对象的name属性,若相同则将num字段进行累加,最终输出name与累加后的num值。此方法适用于需要对具有相同标识的对象进行数值汇总的场景。
568

被折叠的 条评论
为什么被折叠?



