使用迭代器迭代的Java SingletonImmutableList不是foreach?

时间:2016-05-19 08:16:21

标签: java list collections foreach iterator

我找到了这段代码:

public CMNavigation parsePath(List<String> segments) {

    if (segments.isEmpty()) {
      return null;
    }
    // resolve first URL segment to site root channel
    Iterator<String> it = segments.iterator();
    CMNavigation rootNavigation = lookupRootSegment(it.next());
    if (rootNavigation == null) {
      return null;
    }
    Content content = rootNavigation.getContent();
    // iterate over next segments and find the respective navigation child
    while (it.hasNext()) {
      String segment = it.next();
      List<Content> candidates = content.getLinksFulfilling("children", "segment = ?0", segment);
      if (candidates.isEmpty()) {
        return null;
      }
      content = candidates.get(0);
    }
    return contentBeanFactory.createBeanFor(content, CMNavigation.class);
  }

不要太关心背景。 我只想知道为什么&#34;段&#34;类型 SingletonImmutableList 的类型在这里通过while循环加上由&#34; segments&#34;给出的迭代器进行迭代。为什么作者不是在这里使用foreach? 我想更好地了解这种方式,并了解其中的好处。

0 个答案:

没有答案