java循环一个bean bean中有一个字段叫mkbm mkbm相同的会相邻,统计数量给第一个mkbm 添加一个字段sl为相邻的mkbm数量,其他相同的mkbm配置为null jdk6的环境下实现
时间: 2024-11-06 09:35:25 浏览: 10
在JDK 6环境下,可以使用`HashMap`结合循环来实现这个需求。假设我们有一个`Bean`类,其中包含`mkbm`字段。首先,我们需要遍历这个列表,然后维护一个`HashMap`,存储每个`mkbm`及其对应的计数。最后,更新原`Bean`列表中每个元素的`sl`字段。
以下是示例代码实现:
```java
import java.util.HashMap;
import java.util.Map;
public class Bean {
private String mkbm;
private Integer sl;
// getters and setters
}
public void countAdjacentMkbms(List<Bean> beans) {
if (beans == null || beans.isEmpty()) {
return;
}
Map<String, Integer> map = new HashMap<>();
for (Bean bean : beans) {
String currentMkbm = bean.getMkbm();
if (!map.containsKey(currentMkbm)) {
map.put(currentMkbm, 0);
}
map.put(currentMkbm, map.get(currentMkbm) + 1);
// 更新当前bean的sl字段
bean.setSl(map.get(currentMkbm));
}
// 对于第一个遇到的mkbm,如果它的计数为1,说明它之前没有被统计过,将其设置为null
for (Map.Entry<String, Integer> entry : map.entrySet()) {
if (entry.getValue().equals(1)) {
for (Bean bean : beans) {
if (bean.getMkbm().equals(entry.getKey())) {
bean.setSl(null); // 如果找到的第一个mkbm计数为1,设为null
break;
}
}
}
}
}
```
在这个例子中,我们遍历`Bean`列表,如果遇到一个新的`mkbm`,就初始化其计数为1;如果是已知的`mkbm`,则计数加1。最后,我们在原列表上设置`sl`字段。
阅读全文