Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java维护迭代器_Java_List_Iterator - Fatal编程技术网

如何使用Java维护迭代器

如何使用Java维护迭代器,java,list,iterator,Java,List,Iterator,我有一个迭代器实例。我要知道这个的尺寸。在这里,我得到了条目的大小。平均大小是8。假设我只想在这个迭代器中显示5个值。我如何实现这一点 Document<Feed> feeddoc = resp.getDocument(); List<Entry> entries = feeddoc.getRoot().getEntries(); entries = feeddoc.getRoot().getEntries(); Iterator<Entry> iterato

我有一个迭代器实例。我要知道这个的尺寸。在这里,我得到了条目的大小。平均大小是8。假设我只想在这个迭代器中显示5个值。我如何实现这一点

Document<Feed> feeddoc = resp.getDocument();
List<Entry> entries = feeddoc.getRoot().getEntries();
entries = feeddoc.getRoot().getEntries();
Iterator<Entry> iterator = entries.iterator();
int size = entries.size();  //8

while (iterator.hasNext()) {

    /* here I am getting 8 values means iterating 8 times but I want to iterate only 5 times */
    Entry next = iterator.next();
    userDetailsVos = new UserDetailsVos();
    userDetailsVos.setTitle(next.getTitle());

    final IRI temp = next.getLinkResolvedHref("alternate");
    userDetailsVos.setUrl(temp.toString());
    userDetailsVos.setTime(next.getContentElement().getFirstChild().getElements().get(5).getText());

    System.out.println("(1)--" + next.getTitle());
    System.out.println("(2)--" + next.getContentElement().getFirstChild().getElements().get(5).getText());
    System.out.println("url: " + temp.toString());
}

您可以告诉循环最多迭代5个元素:

     for (int i = 0; i < 5 && iterator.hasNext(); i++) {
         ....

这将迭代最多5个元素,但如果少于5个元素,则只有在迭代器有下一个元素时才会迭代。

使用如下计数器变量:

int count = 0;
while (iterator.hasNext()) {
    if (count == 5) 
        break;
    count ++;
    //existing logic...

您可以使用列表子列表

比如说

entries.subList(0,4).iterator();

它只会给出列表中的第0到第4个元素

条目。子列表-这类标准的简单而最佳的方法。不需要计数器和显式for循环!谢谢…它正在工作…@Eran