当前位置: 首页 > 知识库问答 >
问题:

要为集合返回的最佳迭代器类型?拆分器,流?[副本]

宰父深
2023-03-14

我有一个服务层,其中有许多方法返回(通常是很多)对象的集合。这些集合仅用于迭代(最终并行)。

使用的最佳/常用返回类型是什么?

  • <代码>拆分器

共有2个答案

祝嘉懿
2023-03-14

他们都不是。返回Iterable

实现此接口允许对象成为“for each loop”语句的目标。请参见每个循环

提到的类的目的有点不同:

>

  • 分裂器

    StreamSupport.stream(iterable.spliterator(), false)
    

    关键是列表中提到的所有内容都可以从Iterable创建

  • 杜焕
    2023-03-14

    如果调用部分只遍历它(映射、过滤器…),您应该更喜欢流,因为流已经有了这些内置函数,并且不需要具体化特定的集合。。。。如果调用者愿意,让他具体化流。

     类似资料:
    • 我正在讨论设计我们的API(Stream vs Collection作为返回类型)的最佳方式。这篇文章中的讨论非常有价值。 @BrainGotez的答案提到了一个条件,即集合优于流。我不太明白这意味着什么,谁能帮我举个解释的例子? 当有很强的一致性要求时,您必须生成移动目标的一致快照 我的问题是,具体而言,“强一致性要求”和“移动目标的一致快照”在现实应用中意味着什么?

    • 问题内容: 在Java中为集合的集合设计一个迭代器。迭代器应隐藏嵌套,使您可以迭代属于所有集合的所有元素,就像使用单个集合一样 问题答案: 这是一个可能的实现。请注意,我没有执行remove():

    • 嗨,伙计们,我把这个作为面试问题来回答,但我遇到了麻烦。我熟悉泛型/集合 问题是:所提供的工作区中包含cocI,它是一个类的开始,该类实现了一个迭代器,可用于迭代集合集合。集合集合被传递到类的构造函数中。迭代器应该首先遍历内容深度。 例如,如果集合集合如下所示: 然后迭代器应按以下顺序返回内容:“A”、“B”、“C”、“D”、“E”、“F” Q.在cocI中提供hasNext()和next()方法

    • 这可能是一个基本问题,但是有人能解释一下和之间的主要区别并给出一些例子吗?

    • 问题内容: 在Java中,我需要从我的方法中返回一个Iterator。我的数据来自另一个对象,该对象通常可以给我一个迭代器,因此我可以返回它,但是在某些情况下,基础数据为null。为了保持一致,在这种情况下,我想返回一个“空”迭代器,这样我的调用者就不必测试null。 我想写一些类似的东西: 但是Java编译器抱怨返回而不是。投射到也不起作用。 问题答案: 您可以通过以下语法获取Foo类型的空列表

    • 我可以看到返回。但是现在已经添加到C++20标准中,为什么返回?cppreference指定: 返回值 等于last的迭代器。 这个选择背后的理性是什么? 与相比,用例的优势是什么?