【问题标题】:How to maintain Iterator using Java如何使用 Java 维护迭代器
【发布时间】:2014-12-11 08:41:27
【问题描述】:

我有迭代器实例。我必须得到这个的大小。在这里,我得到了条目的大小。平均大小是 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());
}

【问题讨论】:

    标签: java list iterator


    【解决方案1】:

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

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

    这将迭代最多 5 个元素,但如果少于 5 个,它只会迭代,只要迭代器有下一个元素。

    【讨论】:

    • 谢谢...itz 工作...@Eran
    【解决方案2】:

    你可以使用 List#subLists

    例如

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

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

    【讨论】:

    • entries.subList()- 此类标准的简单且最佳的方法。不需要计数器和明确的 for 循环!
    【解决方案3】:

    使用计数器变量,例如:

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

    【讨论】:

      猜你喜欢
      • 2014-03-26
      • 1970-01-01
      • 1970-01-01
      • 2017-07-15
      • 2016-04-09
      • 2011-01-16
      • 1970-01-01
      • 2011-02-03
      • 2015-01-21
      相关资源
      最近更新 更多