zoukankan      html  css  js  c++  java
  • Java遍历方法

    Java中有几种我们常用的遍历数组或集合的方式,下面我来给大家简要总结一下这些遍历方式的各自的使用场景。

    一、for循环

    for循环的循环条件中定义了一个int类型的局部变量(变量名通常是i)。由于数组(Array)的元素可以通过角标访问,我们如果在循环体里得到了数组的角标,就可以对数组的一个或多个元素进行自定义的逻辑操作。同样的,对于有序集合(List),例如ArrayList、LinkedList,它们所存储的每个元素都拥有角标(Index),所以,for循环语句在处理有序集合时,也是得心应手的。

    下面是一个关于for循环的小例子:

    import java.util.ArrayList;
    import java.util.Iterator;
    
    public class Q {
        public static void main(String[] args) {
            ArrayList<String> ls = new ArrayList<String>();
    
            ls.add("zhangsan");
            ls.add("lisi");
            ls.add("wangwu");
    
            for (int i = 0; i < ls.size(); i++) {
                String ele = ls.get(i);
                System.out.println(ele);
            }
        }
    }

    二、Iterator/Enumeration迭代器

    迭代器是针对于某个具体的集合对象的,注意是集合,没有针对数组,如果数组想要得到迭代器,就需要使用Arrays.asList(数组对象)来将数组转换为集合来进行迭代操作(Attention:数组转为集合之后,不能进行增改操作)。集合对象通过iterator()方法来得到一个Iterator的实例对象,该实例对象封装了主动调用iterator()方法的集合的每个元素。

    具体实现过程:

    1、while语句

    while语句使我们比较常用的一种通过迭代器遍历集合的方式。示例代码如下:

    import java.util.ArrayList;
    import java.util.Iterator;
    
    public class Q {
        public static void main(String[] args) {
            ArrayList<String> ls = new ArrayList<String>();
    
            ls.add("zhangsan");
            ls.add("lisi");
            ls.add("wangwu");
    
            //获取ls集合对象的迭代器
            Iterator<String> it = ls.iterator();
    
            /*
             * hasNext()方法返回boolean值,判断是否还有下一个元素;next()方法直接返回下一个集合中的元素。
            */
            while (it.hasNext()) {
                System.out.println(it.next());
            }
        }
    }

    2、for语句

    实现原理与while语句相似,实例代码如下:

    import java.util.ArrayList;
    import java.util.Iterator;
    
    public class Q {
        public static void main(String[] args) {
            ArrayList<String> ls = new ArrayList<String>();
    
            ls.add("zhangsan");
            ls.add("lisi");
            ls.add("wangwu");
    
            for (Iterator it = ls.iterator(); it.hasNext();) {
                String ele = (String) it.next();
                System.out.println(ele);
            }
        }
    }

    3、Enumeration枚举类型

    Enumeration相较Iterator较少使用。主要应用场景包括Vector集合的操作。Vector是ArrayList的线程安全版,但ArrayList比Vector的效率要高。实例代码如下:

    import java.util.Enumeration;
    import java.util.Vector;
    
    public class Q {
        public static void main(String[] args) {
            Vector<String> v = new Vector<String>();
    
            v.add("zhangsan");
            v.add("lisi");
            v.add("wangwu");
    
            Enumeration<String> eles = v.elements();
    
            while (eles.hasMoreElements()) {
                String ele = eles.nextElement();
                System.out.println(ele);
            }
        }
    }

    三、foreach循环

    Set的集合是不可重复的、无序的,其中无序这个特点,就决定Set集合是无法通过角标(Index)访问具体的某个元素,我们无法通过for循环遍历Set集合,而用迭代器遍历又觉得太麻烦,我们这时就可以使用foreach循环遍历Set集合中的元素。事实上,foreach支持集合、数组。在遍历集合或数组中的元素时,若只需要取出每个元素值,而不需要对这些元素进行附加逻辑操作时,就可以考虑使用foreach循环语句遍历集合、数组中的元素。实例代码如下:

    import java.util.HashSet;
    
    public class Q {
        public static void main(String[] args) {
            HashSet<String> hs = new HashSet<String>();
    
            hs.add("zhangsan");
            hs.add("lisi");
            hs.add("wangwu");
    
            for (String ele : hs) {
                System.out.println(ele);
            }
        }
    }
  • 相关阅读:
    params
    robotframework+jenkins分布式执行自动化测试用例
    python文件读写
    Robot Framework资料
    RobotFramework环境搭建
    Django评论系统
    Django集成TinyMCE(admin后台+前台)
    个人博客模块分析
    Django实战,小网站实现增删改查
    docker入门【1】
  • 原文地址:https://www.cnblogs.com/wanxi/p/6476246.html
Copyright © 2011-2022 走看看