zoukankan      html  css  js  c++  java
  • Java 遍历ArrayList的N种方法

    在本博主旧文Java ArrayList类遍历方法基础上添加数组ArrayList对象的“forEach”方法遍历它的用例

    ArrayList集合

    ArrayList集合是程序中最常见的一种集合,它属于引用数据类型(类)。

    在ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长度时,

    ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。
    下面我们看一下ArrayList源码,从它继承类、实现接口来了解一下它能够支持那些方式的遍历方法

     通过对ArrayList继承类、实现接口深入分析,我们可以得到以下N种遍历方法

    public static void main(String[] args) {
    ArrayList arr= new ArrayList();
    initList(arr);
    testByFor( arr);
    testByForeach( arr);
    testByIterator( arr);
    testByListIterator( arr);
    testByForEach( arr);
    }
    /**
    * 初始化数组 ArrayList
    * @param arr
    */
    private static void initList(ArrayList arr){
    arr.add("Java");
    arr.add("C#");
    arr.add("Php");
    arr.add("Ruby");
    arr.add("Swift");
    arr.add(null);
    }

    方式一:For循环

    /**
    * For循环来遍历数组 ArrayList
    * @param arr
    */
    private static void testByFor(ArrayList arr)
    {
    System.out.println("开始通过for指令来测试ArrayList对象");
    for(int i=0;i<arr.size();i++) {
    System.out.println(arr.get(i));
    }
    System.out.println("开始通过for指令来测试ArrayList对象");
    }

    方式二:增强for循环遍历ArrayList:Foreach

    /**
    * Foreach循环来遍历数组
    * @param arr
    */
    private static void testByForeach(ArrayList arr)
    {
    //foreach输出(jdk>=1.5)
    System.out.println("开始通过Foreach指令来测试ArrayList对象");
    for(Object o:arr) {
    System.out.println(o);
    }
    System.out.println("结束通过Foreach指令来测试ArrayList对象");
    }

    方式三:Iterator:迭代器遍历ArrayList

    /**
    * 正向输出迭代器
    * @param arr
    */
    private static void testByIterator(ArrayList arr)
    {
    System.out.println("开始通过iterator指令来测试ArrayList对象");
    Iterator<String> iterator = arr.iterator();
    while (iterator.hasNext()) {
    System.out.println(iterator.next());
    }
    System.out.println("结束通过iterator指令来测试ArrayList对象");
    }

    方式四:ListIterator:双向迭代器遍历

    /**
    * 双向迭代器
    * @param arr
    */
    private static void testByListIterator(ArrayList arr)
    {
    System.out.println("开始通过ListIterator指令来测试ArrayList对象");
    ListIterator iterator=arr.listIterator();

    //正向输出
    while (iterator.hasNext()) {
    System.out.println(iterator.next());
    }
    System.out.println("结束正向输出ArrayList对象");
    while(iterator.hasPrevious()) {
    System.out.println(iterator.previous());
    }
    System.out.println("结束正向输出ArrayList对象");
    System.out.println("结束通过iterator指令来测试ArrayList对象");
    }

    方式五:ArrayList对象的“forEach”方法遍历
    /**
    * 使用数组ArrayList对象的forEach方法
    * @param arr
    */
    private static void testByForEach(ArrayList arr)
    {
    //foreach输出(jdk>=1.8)
    System.out.println("开始通过Foreach指令来测试ArrayList对象");

    //Lambda表达式访问数组的例子
    arr.forEach(x->System.out.println(x));

    System.out.println("开始通过Foreach指令来测试ArrayList对象");
    }
  • 相关阅读:
    三、sersync+rsync实现服务器文件实时同步
    二、Linux实时同步软件之inotify
    一、rsync基础原理
    Samba实战
    DHCP企业实战
    NTP服务器企业实战
    Vsftpd服务器原理及部署
    Python的五大数据类型的作用、定义方式、使用方法,两种交互式方式,格式化输出的三种方式练习。
    pycharm快捷键,变量,字符串,类型的操作方法
    python基础归纳练习 python两种方式,垃圾回收机制,小数整池,数字类型,字符串类型。
  • 原文地址:https://www.cnblogs.com/BlogNetSpace/p/15099362.html
Copyright © 2011-2022 走看看