该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-07-23
最后修改:2010-07-23
不要运行,看看你能猜出下面有几个1,看看你的思维是什么样的。能不能全猜对。
1、下面有几个“1” List<String> list=new ArrayList<String>(); list.add("1"); list.add("1"); list.add("1"); list.add("1"); list.add("4"); list.add("5"); list.add("1"); list.add("7"); list.add("8"); list.add("9"); list.add("1"); list.add("1"); for(int i=0;i<list.size();i++){ if("1".equals(list.get(i))){ list.remove(i); }else{ list.set(i, "1"); } } for(int i=0;i<list.size();i++){ System.out.print(list.get(i)+"\t"); }
2、下面有几个1 List<String> list=new ArrayList<String>(); list.add("1"); list.add("1"); list.add("1"); list.add("1"); list.add("4"); list.add("5"); list.add("1"); list.add("7"); list.add("8"); list.add("9"); list.add("1"); list.add("1"); for(int i=0;i<list.size();i++){ if("1".equals(list.get(i))){ list.remove(i); --i; }else{ list.set(i, "1"); } } for(int i=0;i<list.size();i++){ System.out.print(list.get(i)+"\t"); } 3、下面有几个1 List<String> list=new ArrayList<String>(); list.add("4"); list.add("5"); list.add("8"); list.add("1"); list.add("1"); list.add("1"); list.add("4"); list.add("5"); list.add("1"); list.add("7"); list.add("8"); list.add("9"); list.add("1"); list.add("1"); for(int i=0;i<list.size();i++){ if("1".equals(list.get(i))){ list.remove(i); }else{ list.set(i, "1"); } } for(int i=0;i<list.size();i++){ System.out.print(list.get(i)+"\t"); }
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-07-24
有时候结果还真的不是自己想的那样,一运行一看,错了。
|
|
返回顶楼 | |
发表时间:2010-07-24
最后修改:2010-07-24
leiwuluan 写道
这样遍历删除的问题,List长度不断减少
|
|
返回顶楼 | |
发表时间:2010-07-24
对啊、、、新手写程序要注意的,有时候想法是对了但是逻辑不知不觉的错了,
|
|
返回顶楼 | |
发表时间:2010-07-24
这样遍历去remove肯定有问题~ iterator的remove会稳定的
|
|
返回顶楼 | |
发表时间:2010-07-24
1题数的是6个
|
|
返回顶楼 | |
发表时间:2010-07-24
huangfoxAgain 写道 这样遍历去remove肯定有问题~ iterator的remove会稳定的
正解 |
|
返回顶楼 | |
发表时间:2010-07-24
恩 后来从1开始数了, 第一个元素该是第0个的
|
|
返回顶楼 | |
发表时间:2010-07-24
其实很简单,list remove 里面的参数是index ,然后调整元素的index,这跟set的remove不同,set 的remove参数是对象
|
|
返回顶楼 | |
发表时间:2010-07-24
这个就是remove以后的游标的变化么
|
|
返回顶楼 | |