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

使用流[duplicate]迭代列表时获取索引

鲁泰宁
2023-03-14
List<Rate> rateList = 
       guestList.stream()
                .map(guest -> buildRate(ageRate, guestRate, guest))
                .collect(Collectors.toList());  

class Rate {
    protected int index;
    protected AgeRate ageRate;
    protected GuestRate guestRate;
    protected int age;
}

在上面的代码中,是否可以在buildrate方法内部传递guestlist的索引。在构建rate时,我还需要传递索引,但无法使用stream获取索引。

共有1个答案

赫连俊悟
2023-03-14

您没有提供buildrate的签名,但我假设您希望guestlist元素的索引首先传入(在agerate之前)。您可以使用IntStream获取索引,而不必直接处理元素:

List<Rate> rateList = IntStream.range(0, guestList.size())
    .mapToObj(index -> buildRate(index, ageRate, guestRate, guestList.get(index)))
    .collect(Collectors.toList());
 类似资料:
  • 问题内容: List rateList = guestList.stream() .map(guest -> buildRate(ageRate, guestRate, guest)) .collect(Collectors.toList()); 在上面的代码中,可以通过内部方法的索引。我在构建时还需要传递索引,但无法通过获取索引。 问题答案: 您尚未提供的签名,但是我假设您希望首先传递元素的索引

  • 我正在尝试使用列表迭代器来遍历一个链表,并根据存储在那里的整数值对下一个节点进行一些操作/检查,但我的代码中出现了一些错误。我想我不明白iterator.next()正在返回什么(一些E对象,但我不知道如何从它中访问我想要的值)编辑器希望我做一些如下所述的转换。它摆脱了错误,但我不知道这是否是处理问题的安全方法,或者它是否具有我正在寻找的行为。请解释为什么我会得到错误,以及是否有一个好的方法来处理

  • 问题内容: 我试图根据当前正在另一个列表上迭代的索引显示来自其他列表的值,但无法弄清楚如何访问各个项目。 如你所见,我尝试使用它,但是它什么也不显示,它只是创建一个空的表头元素。 我的其他数组在视图中的定义如下,如果删除,则可以看到整个数组已打印到表头 如果我错过任何必填信息,请告诉我。 问题答案: 听起来你想同时遍历两个列表,换句话说就是zip()列表。 如果是这种情况,最好在视图中进行操作并在

  • 我想知道,如何在Java8中使用流API迭代多级列表 根据Java8,我应该做如下的操作 我想要流利地做这件事(使用内部迭代)。任何解释都会很感激。

  • 问题内容: 为了在模板中使用‘s’ 关键字,我想在使用进行迭代时获取地图条目的索引。有什么办法吗?我的地图具有以下结构: 问题答案: 您不仅可以使用模板操作来执行此操作,还可以注册一个提供必要帮助的函数。 您可以注册一个返回一个函数(闭包)的函数,该函数在每次调用时都会改变其返回值(确切地说,“奇数”和“偶数”索引的交替方式): 我将其命名为不与ravel的碰撞。使用它: 输出(在Go Playg

  • 我可以在varArgs上使用或吗?