如何在不循环的情况下获得迭代器大小?反正有吗?
Iterator<String> keys = Map.keySet().iterator();
现在我希望Keys的大小只是忘记了Map.keySet()
。
答案 0 :(得分:2)
Iterator只是给你一个遍历Collection的方法,所以“Iterator的大小”是它迭代的集合的大小。在这种情况下,只需使用以size()方法构建的Set(或任何其他Collection):
int size = Map.keySet().size();
如果您处于可以访问Iterator但需要基础Collection大小的情况下,我认为您需要与只提供迭代器的那个进行对话,并且可以访问Collection,或者获取集合的大小。
答案 1 :(得分:1)
迭代器是java.util.Iterator interface的实现。此界面不提供任何方法来了解其实现的大小(事实上,这些实现不需要具有size属性)。如果你需要一个具有大小的迭代器和一个获取它的方法,你应该构建自己的实现。
但是,如果你需要的是迭代器遍历的集合的大小,那么fvu的答案是正确的。