/**
* @author li
* @version 1.0.0
* @ClassName SumTest.java
* @Description 在List集合中根据值相同,属性累加
* @createTime 2021年03月15日 16:38:00
*/
public class SumTest {
public static void main(String[] args) {
List<Student> list = new ArrayList<>();
list.add(new Student("阿三", 100));
list.add(new Student("阿三", 200));
list.add(new Student("阿四", 300));
list.add(new Student("阿四", 400));
list.add(new Student("阿四", 500));
//Map泛型<根据这个区分是否同一个人,完整的Bean>
Map<String, Student> map = new HashMap<>();
for (Student student : list) {
if (map.containsKey(student.name)) {
student.setMoney(map.get(student.name).money + student.money);
map.put(student.name, student);
} else {
map.put(student.name, student);
}
}
System.out.println(map);
}
}
class Student {
String name;
Integer money;
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", money=" + money +
'}';
}
public Student() {
}
public Student(String name, Integer money) {
this.name = name;
this.money = money;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getMoney() {
return money;
}
public void setMoney(Integer money) {
this.money = money;
}
}
运行结果: