71.集合中使用迭代器;循环+迭代器联合操作集合;

集合中使用迭代器

<1>迭代器和集合的关系: 迭代器是操作集合的第二种方式,后期可以延展使用到很多地方,并且存在一个升级版内容【增强for循环】

迭代器和集合本身有着密切关系,首先迭代器的获取,就是通过集合对象,得到对应当前集合的迭代器;
获取迭代器的方法: Iterator<E> iterator(); 获取迭代器对象,泛型对应的具体数据类型和集合中约束的泛型具体数据类型一致

<2>迭代器操作使用到的方法
boolean hasNext(); 判断当前集合中是否可以继续得到元素,能否继续遍历;
E next();
①获取迭代器当前指向的元素;
②将迭代器指向下一个元素;
void remove(); 删除通过next方法获取到的元素;

【注意事项】
remove方法只能删除next方法获取到元素
②remove方法只能在next方法之后执行,且不能跨过一个next执行
没有next不能使用remove

class Panda{
    public static void main(String[] args) {
        //使用迭代器操作集合
        Collection<String> list = new ArrayList<>();
        list.add("小哈");
        list.add("小金");
        list.add("小花");
        list.add("小黄");
        list.add("小撒");
        System.out.println("原始list:"+list);
        //获取对应当前集合的迭代器对象
        //集合中保存的元素是什么类型,迭代器操作元素就是什么类型
        //迭代器在获取过程中,默认执行集合中的第一个元素
        Iterator<String> iterator = list.iterator();
        //hashNext() 判断当前集合是否可以继续获取到元素
        System.out.println("演示hashNext()方法:"+iterator.hasNext());
        //next() 方法 获取迭代器当前指向的元素并将迭代器指向下一个元素
        System.out.println("演示next()方法:"+iterator.next());
        System.out.println("演示next()方法:"+iterator.next());
        //remove() 方法 删除通过next() 方法获取到的元素
        System.out.println("remove()执行");
        iterator.remove();
        System.out.println("操作后list:"+list);
    }
}

循环+迭代器联合操作集合

class Panda{
    public static void main(String[] args) {
        //使用迭代器操作集合
        Collection<String> list = new ArrayList<>();
        list.add("小哈");
        list.add("小金");
        list.add("小花");
        list.add("小黄");
        list.add("小撒");
        System.out.println("原始list:"+list);
        //获取对应当前集合的迭代器对象
        //集合中保存的元素是什么类型,迭代器操作元素就是什么类型
        //迭代器在获取过程中,默认执行集合中的第一个元素
        Iterator<String> iterator = list.iterator();
        //使用循环与迭代器,删除掉集合中所有元素
        //hashNext() 判断当前集合是否可以继续获取到元素
        //如果不用hasNext() 方法进行判断当集合中不可以继续获取到元素的时候,调用next() 方法会报错
        //NoSuchElementException
        while(iterator.hasNext()){
            //next() 方法 获取迭代器当前指向的元素并将迭代器指向下一个元素
            iterator.next();
            //remove() 方法 删除通过next() 方法获取到的元素
            iterator.remove();
            System.out.println("操作后list:"+list);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值