java中ArrayList使用remove注意事项,arraylistremove
分享于 点击 9450 次 点评:106
java中ArrayList使用remove注意事项,arraylistremove
//在remove一条信息时,ArrayList的大小已经改变(即list.size()已经改变);
在i大于等于list.size()时,循环跳出,后便的ArrayList不能再执行;
所以必须在remove的同时,执行i--,即i=i-1;
现在才能遍历所有List中的信息。也不能在用Iterator遍历时使用remove,会抛异常。
public class TrickyAL {
public static LinkedList<User> llu=new LinkedList<User>();
public static HashMap<String,User> hmu=new HashMap<String,User>();
public static ArrayList<User> ulist=new ArrayList<User>(Arrays.asList
(new User[]{
new User(2,"Eric"),
new User(3,"Eric"),
new User(1,"Aaron"),
new User(4,"Eric")
}
));
static{
llu.add(new User(1,"Aaron"));
llu.add(new User(2,"Eric"));
llu.add(new User(3,"Tom"));
hmu.put("1",new User(3,"Tom"));
hmu.put("2",new User(2,"Eric"));
hmu.put("3",new User(1,"Leo"));
hmu.put("3",new User(4,"Scott"));
}
public static void deleteUser(ArrayList<User> urlist,String auser){
Iterator itr=urlist.iterator();
int c=urlist.size();
for(int i=0;i<c;i++){
if(auser.equals(urlist.get(i).name)){
urlist.remove(i);
i--;
c--;
}
}
}
public static void deleteUser(LinkedList<User> urlist,String auser){
Iterator itr=urlist.iterator();
int c=urlist.size();
for(int i=0;i<c;i++){
相关文章
- 暂无相关文章
用户点评