实现迭代器的方法(待补全)

实现ArrayList迭代器的方法,目前只实现了普通迭代器的方法
所有分析随代码附上

/**
     * 调用内部类MItr
     * @return
     */
    @Override
    public MyIterator<E> iterator() {
        return new MItr();
    }

    /**
     * 内部类MItr
     * 实现MyIterator接口的所有迭代器方法
     */
    private class MItr<E> implements MyIterator<E>{
        int cursor; //迭代器的游标,表示下一个元素的索引位置
        int prev=-1;   //表示上一个元素的索引位置
        int exceptModCount=modCount; //该迭代器职责内预期执行修改的次数
                                     //exceptModCount的初值为modCount

        @Override
        public boolean hasNext() {
            return cursor!=size;  //当下个元素游标没有走到elements最后一个元素上时返回true
                                  //当前迭代的位置不是数组的最大容量值就返回true
        }

        @Override
        public E next() {
            //检查是否有来自不属于该迭代器的修改
            checkModificationCount();
            //i用于维护cursor与prev的关系
            int i=cursor;
            if(i>=size){
                throw
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值