存在一个对象,用两个属性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();
}
}