zoukankan      html  css  js  c++  java
  • 迭代器的使用

    public class Test{
    public static void main(String args[]){
    HashSet<String> hs=new HashSet<String>();
    hs.add("a");
    hs.add("b");
    hs.add("c");
    //迭代器的使用
    Iterator<String>.it=hs.iterator();  //调用Set对象的iterator方法会生成一个迭代器对象,可以通过迭代器来遍历集合;当迭代器定义为泛型,调用next()方法时才会返回相应的类型,否则返回Object,这样就需要强制转型了
    while(it.hasNext()){  //遍历迭代器;hasNext()判断是否还有下一个元素,有返回true,没返回false
    String str = it.next();  //next()取出下个元素返回,指针往后移一位,没有则返回false;注意是无序排列的
    System.out.println(str);
    if(str="a"){
    it.remove();  //删除元素
    }
    }
    }
    }
    

    集合和迭代器都应使用泛型,这样更加的安全简单

    使用Iterator遍历集合比foreach更高效灵活,比如可以直接remove()掉一个元素,而foreach在遍历的时候不允许删除元素

    例:

    不能在对一个List进行遍历的时候将其中的元素删除掉解决办法是,你可以先将要删除的元素用另一个list装起来,等遍历结束再remove掉

    List delList = new ArrayList();  //用来装需要删除的元素
    for(Information ia:list)
    if(ia.getId()==k){
    n++;
    delList.add(ia);
    }
    list.removeAll(delList);  //遍历完成后执行删除

    由此可见,使用Iterator比foreach更具灵活性

  • 相关阅读:
    SGU 271 Book Pile (双端队列)
    POJ 3110 Jenny's First Exam (贪心)
    HDU 4310 Hero (贪心)
    ZOJ 2132 The Most Frequent Number (贪心)
    POJ 3388 Japanese Puzzle (二分)
    UVaLive 4628 Jack's socks (贪心)
    POJ 2433 Landscaping (贪心)
    CodeForces 946D Timetable (DP)
    Android Studio教程从入门到精通
    Android Tips – 填坑手册
  • 原文地址:https://www.cnblogs.com/3body/p/5416782.html
Copyright © 2011-2022 走看看