最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Java 遍历ArrayList的N种方法

网站源码admin0浏览0评论

Java 遍历ArrayList的N种方法

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

ArrayList集合

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

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

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

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

代码语言:javascript代码运行次数:0运行复制
public static void main(String[] args) {
    ArrayList arr= new ArrayList();
    initList(arr);
    testByFor( arr);
    testByForeach( arr);
    testByIterator( arr);
    testByListIterator( arr);
    testByForEach( arr);
}
代码语言:javascript代码运行次数:0运行复制
/**
 * 初始化数组 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循环

代码语言:javascript代码运行次数:0运行复制
/**
 * 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

代码语言:javascript代码运行次数:0运行复制
/**
 * 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

代码语言:javascript代码运行次数:0运行复制
/**
 * 正向输出迭代器
 * @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:双向迭代器遍历

代码语言:javascript代码运行次数:0运行复制
/**
 * 双向迭代器
 * @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对象");
}
代码语言:javascript代码运行次数:0运行复制
方式五: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对象");
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2021-08-04,如有侵权请联系 cloudcommunity@tencent 删除对象数组javaarraylist遍历

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论