三大遍历集合的方式

特点:在遍历时不依赖索引

一、迭代器遍历

其相关的三种方法

Iterator<E> iterator()//获取一个迭代器的对象
boolean hasNext()//判断当前指向的位置师傅存在元素
E next()//获取当前指向的元素并移动指针    

代码实现

Collection<String> coll = new ArrayList<>();
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");
//创建集合
Iterator<String> it = coll.iterator();//获取迭代器对象
//迭代器就像一个箭头,默认指向集合0索引的位置
        while(it.hasNext()){
            System.out.println(it.next);
        }

注意点

1、报错(NoSuchElementException)

Collection<String> coll = new ArrayList<>();
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");
//创建集合
Iterator<String> it = coll.iterator();//获取迭代器对象
//迭代器就像一个箭头,默认指向集合0索引的位置
        while(it.hasNext()){
            System.out.println(it.next);
        }
System.out.println(it.next);//报错,此时指针处已没有元素

2、迭代器遍历完毕,指针不会复原

如果需要再次遍历,则需再次创建Iterator对象

3、循环中只能用一次next方法

hasNext方法必须与Naxt方法配套使用

4、迭代器遍历时,不能用集合的方法进行增删

如需删除可以使用

void remove();//删除元素

二、增强for循环

格式

for(元素类型 变量名 : 数组或集合){
    
}

示例

Collection<String> coll = new ArrayList<>();
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");
for(String s : coll){
            System.out.println(s);//增强for循环
        }
//其中s就是一个第三方变量,在循环中依次表示集合中的每一个数据

细节

修改增强for中的变量,不会改变集合中的原本的数据

三、lambda表达式遍历

所需的方法 default void forEach(Consuner<? super T> action);

示例

Collection<String> coll = new ArrayList<>();
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");
coll.forEach(s -> System.out.println(s));//利用lambda表达式,简化代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呜呜。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值