我从类中得到一个迭代器,我想得到该迭代器的第x个元素.我知道我可以将它加载到循环中的ArrayList中或检查计数器,但这似乎效率低下/丑陋.做这个的最好方式是什么?
我想的是,
List al = new ArrayList(myIterator);
myval = al.get(6);
Run Code Online (Sandbox Code Playgroud)
但是那个构造函数是未定义的.谢谢.
a的定义Iterator不允许任意索引到某个位置.这就是它的定义方式.如果需要该功能,则必须将数据加载到可索引的集合中.
Iterator接口的要点是允许对集合进行顺序访问,而无需了解其大小.迭代器可以是仅向前的或双向的(ListIterator).它只是访问集合元素的一个特定模型.一个优点是它对集合大小没有任何意义,这可能太大而不能完全适合内存.通过仅允许顺序访问,实现可以在任何给定时刻自由地将部分集合保留在内存中.
如果需要将迭代器内容加载到列表中,则需要使用循环自行完成.
不,你已经命名了唯一的方法.你最终需要一个for循环迭代到适当的位置.
一些实用程序库有一些快捷方式可以将Iterator内容加载到一个ArrayList或者获取一个n元素Iterator,但JDK中没有内置任何内容.
| 归档时间: |
|
| 查看次数: |
3159 次 |
| 最近记录: |