Iterator如何最方便的取得Size

antony0203 2014-01-24 04:58:54
如题,JAVA类Iterator除了遍历一遍自己计数外,有其他更好的方法得到类似于List的Count值不?
...全文
3333 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月夜 2014-01-26
  • 打赏
  • 举报
回复
Iterator是一个迭代器,没有size()方法。集合类实现它,是为了能进行foreach遍历。如果你只想查看size的话。可以自己写一个公共方法吧,什么时间想用之间调用。
antony0203 2014-01-26
  • 打赏
  • 举报
回复
好吧,很多年不写代码,也不知道该怎么表达我的问题,就直接贴代码吧 下面代码是调用Oracle nosql API接口,那个接口返回的是个Iterator集合, 遍历具体值是很方便,while就可以,但是我想不遍历就能拿到查询出来的总数 我想知道的是,各位代码高手有没有简便的方法,比如类似于直接把得到的Iterator直接转成List这类集合什么,这样直接可以取Size了。

        Iterator<KeyValueVersion> i =
		kvstore.storeIterator(Direction.UNORDERED, 0,
				myKey, kr, null);
	while (i.hasNext()) {
		Value v = i.next().getValue();
		System.out.println("Sub################:"+new String(v.getValue()));
		
	}

皮卡丘_后盾 2014-01-25
  • 打赏
  • 举报
回复
size()
树哥 2014-01-25
  • 打赏
  • 举报
回复
只要是集合类都有size()函数的。
静山晚风 2014-01-25
  • 打赏
  • 举报
回复
看下面的例子:
public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable
ArrayList 实现了List接口
public interface List<E> extends Collection<E> 
list 继承自collection接口
public interface Collection<E> extends Iterable<E> {
Collection集成自Iterable接口 上面只是举个例子,Iterator本身是接口,只有实际实现了接口的类才有长度,明白了吗,楼主问的有点问题
kiyoki 2014-01-25
  • 打赏
  • 举报
回复
iterator作为一个接口,并没有定义取得长度的方法 单就iterator而论,没办法
teemai 2014-01-25
  • 打赏
  • 举报
回复
size啊。
张自强 2014-01-25
  • 打赏
  • 举报
回复
楼主可以说下自己的需求和想法,正常情况下估计都是size()
oh_Maxy 2014-01-24
  • 打赏
  • 举报
回复
一般Iterator也都是通过List等Collection的iterator方法实现的,而Collection等类都有size()方法。LZ可以看看JDK API帮助文档,搜下相关类。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧