黑马程序员技术交流社区

标题: 集合迭代中删除 [打印本页]

作者: 黎健东    时间: 2012-8-29 04:41
标题: 集合迭代中删除
  1. public class Bug3Remove {
  2.     public static void main(String[] args) {
  3.         LinkedList<String> link1 =     new LinkedList<String>();
  4.         
  5.         link1.add("1");
  6.         link1.add("2");
  7.         link1.add("3");
  8.         link1.add("4");

  9.         ListIterator<String>  it1 = link1.listIterator();
  10.         
  11.         int len = link1.size();
  12.         for(int i = 0; i < len; i++){
  13.             System.out.println(link1.get(i));
  14.             link1.removeLast();
  15.             len--;
  16.         }
  17. }
复制代码
使用for,上面的代码能够输出结果,但是使用迭代器的话,如何输出上面的结果呢


作者: 黑马-王言龙    时间: 2012-8-29 08:17
  1. import java.util.*;
  2. public class Demo {


  3.     public static void main(String[] args) {
  4.         LinkedList<String> ll = new LinkedList<String>();
  5.         
  6.         ll.add("1");
  7.         ll.add("2");
  8.         ll.add("3");
  9.         ll.add("4");


  10.                 for(ListIterator<String>  li = ll.listIterator(); li.hasNext();) {
  11.                         String str = li.next();
  12.                         if("3".equals(str)) {
  13.                                 li.remove();
  14.                         }
  15.                 }

  16.                 System.out.println(ll.toString());//[1, 2, 4]
  17.         }

  18. }
复制代码

作者: 黑马-王言龙    时间: 2012-8-29 09:09
理解错误!!!
用迭代器迭代集合中的元素,就只能用迭代器的方法在迭代的过程中操作元素。
而列表迭代器中没有删除最后一个元素的方法。
所以无能为力。
作者: 黎健东    时间: 2012-8-29 14:12
黑马-王言龙 发表于 2012-8-29 09:09
理解错误!!!
用迭代器迭代集合中的元素,就只能用迭代器的方法在迭代的过程中操作元素。
而列表迭代器中 ...

如果集合中的元素非常多,多到不能用int double这种来取他的size,for就不能用了,也许只能考虑迭代器了吧
这个时候,想要取出集合中的前一半元素,并删除集合中后一半元素,这个时候该怎么实现呢?
作者: 黑马-王言龙    时间: 2012-8-29 16:17
黎健东 发表于 2012-8-29 14:12
如果集合中的元素非常多,多到不能用int double这种来取他的size,for就不能用了,也许只能考虑迭代器了 ...

好想法,保留,思考题...

大数量的数据操作,我只知道,数据库的干活...
作者: 黎健东    时间: 2012-8-29 16:39
黑马-王言龙 发表于 2012-8-29 16:17
好想法,保留,思考题...

大数量的数据操作,我只知道,数据库的干活... ...

我把数据库这货忽略了...但是不知道不用数据库的话,怎么做的好
王言龙童鞋能帮我看一下我另外一个很纠结的问题吗
http://bbs.itheima.com/thread-24225-1-1.html
谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2