java 怎么知道Iterator有多少条记录

 我来答
小童鞋_成er
2014-06-29 · 知道合伙人数码行家
小童鞋_成er
知道合伙人数码行家
采纳数:4650 获赞数:22879
主要从事J2EE工作,热爱Java,用心讨论技术,共同进步。

向TA提问 私信TA
展开全部

您好,提问者:
    如果有集合的话,直接集合.size()就搞定了。

    另外非要用Iteraotr的话,如下代码:

    List list = new ArrayList();
    list.add("asd");
    list.add(234);
    list.add("asd");
    int count = 0; //定义一个统计器
    for(Iterator it = list.iterator(); it.hasNext();){
        it.next();
        count = count+1;//没循环一次,就让count加1.
    }
    System.out.println("Iterator总数:" + count);
百度网友a3e7b2e
推荐于2016-06-15 · TA获得超过753个赞
知道小有建树答主
回答量:492
采纳率:66%
帮助的人:316万
展开全部

迭代器本身可以迭代,在迭代中计数即可计算所有条数

Iterator iter = list.iterator();
while(iter.hasNext()){
    count++;
}

不过可以迭代的集合之类的一般都有size可以看条目数

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
LeenHLL
2018-05-04 · TA获得超过4085个赞
知道小有建树答主
回答量:599
采纳率:25%
帮助的人:358万
展开全部

Iterator肯定有长度。通过反射,可以得到Iterator的长度。

Iterator是接口,楼主提到Iterator,一定是已经实现了List。把断点放在例如list.iterator(),能看到【expectedModCount】的成员,正是当前Iterator的长度。完整代码:

注意:当Iterator有remove()操作,expectedModCount会累加。

ArrayList<String> list = new ArrayList<>();
Iterator<?> it = list.iterator();
Field f = it.getClass().getDeclaredField("expectedModCount");
int size = (int)f.get(it); 
//最后一步不能连点,例如:it.getClass().getDeclaredField("expectedModCount").get("it")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乐正雁卉d1c01
2014-06-29 · TA获得超过103个赞
知道答主
回答量:80
采纳率:0%
帮助的人:49.4万
展开全部
Iterator中记录不是集合中的元素个数?
看还是你要表达另外的意思?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
流浪的幽狼
2014-06-29 · TA获得超过1515个赞
知道大有可为答主
回答量:1462
采纳率:75%
帮助的人:777万
展开全部
it.size()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式