36.集合:Collection集合的遍历形式

2022-03-08  本文已影响0人  每天起床都想摆

Collection集合的遍历形式

方式一:迭代器

迭代器概述

迭代器获取及常用方法

Collection集合获取迭代器

方法名称 说明
Iterator<E> iterator() 返回集合中的迭代器对象,该迭代器对象默认指向当前集合的0索引

Iterator中的常用方法

方法名称 说明
boolean hasNext() 询问当前位置是否有元素存在,存在返回true,不存在返回false
E next() 获取当前位置的元素,并同时将迭代器对象移向下一个位置,注意防止取出越界

测试代码

package com.java.collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * 使用迭代器获取集合元素
 */
public class CollectionDemo03 {
    public static void main(String[] args) {
        Collection<String> lists = new ArrayList<>();
        lists.add("吴亦凡");
        lists.add("华晨宇");
        lists.add("陈冠希");
        lists.add("张柏芝");
        System.out.println(lists);

        // 1. 得到当前集合的迭代器对象
        Iterator<String> it = lists.iterator();
/*      String e = it.next();
        System.out.println(e);
        System.out.println(it.next());*/
        //next()每次成功访问元素后就会移动到下一个元素的位置,因此要谨防越界问题
/*      System.out.println(it.next());
        System.out.println(it.next());*/
        //System.out.println(it.next());  NoSuchElementException,出现无此元素异常

        // 2.定义While循环,使用hasNext()判断是否有元素,有就进入循环使用next()取出来
        while (it.hasNext()) {
            System.out.println(it.next());  
            // 一个循环下不能出现两个next语句 否则会因为数组元素是奇数是发生如上异常
        }

    }
}

方式二:foreach/增强for循环

增强for循环概述

格式

for(元素数据类型 变量名 : 数组或者Collection集合){
    // 在此处使用变量即可,这变量就是元素
}

示例

Collection<String> list = new ArrayList<>();
... ...
for(String ele : list){
    System.out.println(ele);
}

测试代码

package com.java.collection;

import java.util.ArrayList;
import java.util.Collection;

/**
 * 使用增强for循环(又称foreach)获取集合元素
 */
public class CollectionDemo04 {
    public static void main(String[] args) {
        Collection<String> lists = new ArrayList<>();
        lists.add("吴亦凡");
        lists.add("华晨宇");
        lists.add("陈冠希");
        lists.add("张柏芝");
        System.out.println(lists);

        for (String ele : lists) {
            System.out.println(ele);
        }

        // 尝试遍历数组
        int[] scores = new int[]{100, 200, 300, 400, 500};
        for (int s : scores) {
            System.out.println(s);
        }
    }
}

方式三:Lambda表达式

上一篇下一篇

猜你喜欢

热点阅读