如下代码:
String qq="123456";
List<Friend> friends=server.getFriend();
for(int i=0;i<friends.size();i++){
if(!friends.get(i).getQq().equals(qq)){
friends.remove(i);
}
}
有何错?
------解决方案--------------------
移除本身没错,但这样会导致 friends.size() 动态减小。
那么你的循环 for(int i=0;i<friends.size();i++){ 就不准确了,容易造成错漏。
这种情况下,建议换成用迭代器,会更合适些:
for (Iterator<Friend> iterator = friends.iterator(); iterator.hasNext()) {
Friend entry = (Friend) iterator.next();
if(!entry.getQq().equals(qq)){
iterator.remove();
}
}
直接打上来的代码,可能有小错误,你测试下吧。