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更具灵活性

  • 相关阅读:
    谷粒商城所学知识点整理总结
    谷粒商城项目介绍
    JVM 中的垃圾回收
    对象的创建和分配
    JVM 中的异常
    JVM 中的StringTable
    一个 java 文件的执行过程详解
    复制表的方法
    从 Vue parseHTML 来学习正则表达式
    Visual Studio 2022 预览版下载来了(x64位)
  • 原文地址:https://www.cnblogs.com/3body/p/5416782.html
Copyright © 2011-2022 走看看