教育网首页|教育网址导航|收藏本站 |设为首页|         登陆|注册

中国人教育网|教育新闻网站 官方教育论坛 全国家长老师学生教育门户

中国教育网址导航
搜索
查看: 3700|回复: 0
go

java中ArrayList中是用remove注意事项

001大学大三

中国考生网

Rank: 6Rank: 6

金币
2917  
大学学分
8  
在线时间
118 小时 
注册时间
2009-4-11 
帖子
281 
UID
37762 
发表于 2009-5-11 09:48 |显示全部帖子
 在ArrayList中是用remove应注意ArrayList的变化,
  例如:
  ArrayList list = new ArrayList();
  for (int i = 0; i < 10; i++) {
  HashMap hs = new HashMap();
  hs.put("put", i + 1);
  list.add(hs);
  }
  for (int i = 0; i < list.size(); i++) {
  System.out.println("1=i=" + i);
  HashMap hsOld = list.getHash(i);
  int put = hsOld.getInt("put");
  if (put == 3 || put == 5 || put == 7) {
  list.remove(hsOld);或list.remove(i);
  i--;
  } else {
  nlist.add(hsOld);
  System.out.println("put===" + put);
  }
  }
  在for循环的是i是自增的变量,在remove一条信息时,
  ArrayList的大小已经改变(即list.size()已经改变);
  在i大于等于list.size()时,循环跳出,后便的ArrayList不能再执行;
  所以必须在remove的同时,执行i--,即i=i-1;
  现在才能遍历所有List中的信息。
http://computer.001en.com/200905091619138456.html

家长|教师|学生|情商|价值|反思|教育新闻|教育论坛|中国人教育网 学生老师家长教育网站 ( 闽ICP备07005713号 )

GMT+8, 2012-2-7 04:55 , Processed in 0.052927 second(s), 13 queries .