for (User user : list) {
if(dup != null && dup.size() > 0){
for (User user1 : dup) {
if(user1.getAge() == user.getAge() && user1.getName().equals(user.getName())){
mul.add(user);
break;
}else{
dup.add(user);
}
}
}else{
dup.add(user);
}
}
问题:循环之后就失败了,抛出异常
问题是由于你在遍历的时候对list进行了修改,所以就会出现这个错误。
if (dup != null) {// 放在最外层吧,dup如果为null,执行add应该会出错吧?
int temp = dup.size();
for (User user : list) {
if (temp > 0) {
for (int i =0;i<temp;i++) {
User user1 = dup.get(i);
if (user1.getAge() == user.getAge()
&& user1.getName().equals(user.getName())) {
mul.add(user);
break;
} else {
dup.add(user);
temp++;
}
}
} else {
dup.add(user);
temp++;
}
}
}
用 foreach 时不能改变list中的值,
将你用 foreach 的地方
换成普通的_for_循环就可以了_for(int i = 0; i < list.size(); i++) {}_
里面的东西可以不变