用Java实现,对于一个list循环同一个属性相同汇总达到设定的最大值则新增一条记录,相同属性汇总不满最大值也生成一条记录,直至继续循环
时间: 2024-03-15 09:45:32 浏览: 174
好的,您的问题是如何用Java实现对一个list进行循环汇总并新增记录,可以参考以下代码实现:
假设我们有一个实体类Person,其中包含属性name和age,我们需要对一个List<Person>进行循环汇总,当同名的人的年龄总和超过指定值maxAge时,则新增一条记录,否则继续循环。
```java
List<Person> persons = new ArrayList<>(); // 原始的List数据
Map<String, Integer> nameAgeMap = new HashMap<>(); // 名字和年龄的Map
int maxAge = 50; // 设定的最大年龄
for (Person person : persons) {
String name = person.getName();
int age = person.getAge();
if (nameAgeMap.containsKey(name)) {
int sumAge = nameAgeMap.get(name) + age;
if (sumAge > maxAge) {
// 新增一条记录
Person newPerson = new Person(name, sumAge);
persons.add(newPerson);
nameAgeMap.put(name, age);
} else {
nameAgeMap.put(name, sumAge);
}
} else {
// 第一次出现的名字
nameAgeMap.put(name, age);
}
}
```
以上代码实现了对List进行循环汇总,并新增记录的逻辑。其中使用了一个Map来记录每个名字对应的年龄总和,当年龄总和超过指定的值时,就新增一条记录,否则继续循环。
阅读全文