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

将流映射到数组中的位置

齐成和
2023-03-14

假设我有一个包含一些对象的数组。

Obj[] objects = new Obj[]{Obj1,Obj2,Obj3,Obj4}; 

出于好奇,是否可以将流映射到它们在原始数组中的位置?例如,在这种情况下将其映射到1,2,3,4?

我想这样的事情是行不通的。

Arrays.stream(objects)
      .mapToInt(?)
      .toArray();

共有1个答案

花永昌
2023-03-14

Stream是一个内部迭代器,它的意思是缓慢地处理源代码中的元素,直到源代码耗尽。流的整个点,你没有控制迭代过程(这就是内部迭代器的意思),所有需要关心的是你的业务逻辑。

当然,正如@Rogue在评论中提到的,您可以使用IntStream.range()遍历数组的索引,但这是一种人为的数组流式传输方式。它带来了不必要的复杂性。如果您有一个数组-Arrays.stream(),那就是您需要的。

当您需要在迭代数组时使用数组的索引时,暂停一下,第二个最有可能的传统的基于索引的< code > for -循环将更适合您正在做的事情。

 类似资料:
  • 我正在尝试将我的对象[]数组映射并过滤到int[]数组。如果对象是int,效果很好,但如果不是int,则抛出强制转换异常。我想知道我是否可以在lambda表达式中附加一个try/catch?这是我的代码: 或者更好的方法是试着抓住整个街区?

  • 使用一个函数将数组的值映射到对象,其键值对中,原始值作为键,映射值作为值。 使用一个匿名的内部函数作用域来声明一个 undefined 的内存空间,使用闭包来存储返回值。 使用一个新的 Array 来存储带有函数映射的数组和一个逗号运算符来返回第二个步骤,而不需要从一个上下文移动到另一个上下文(由于闭包和操作顺序)。 const mapObject = (arr, fn) => (a => (

  • 基本上,我收到的数据是这样的。 我试着在React 16.9中以表格的形式显示它,如下所示。 我的问题是参与者通常是一个对象数组,并且不显示,我的问题是我如何能够显示或映射对象数组到表的一行。

  • 问题内容: 我在这里有一个复杂的json 我正在尝试在我的模型类“ ChromeJsonModel”中映射它,例如: 但是我收到以下错误。 我为什么会在哪里出问题? 问题答案: 您拥有非常复杂的有效负载,其中相同的属性可能具有一个或多个对象。默认情况下不会处理这种情况,因此我们需要为此类属性实现自定义反序列化器。下面我创建了代表您的有效负载的简单模型: 如您所见,它是-es属性。让我们为这些属性实

  • 流上的操作是否可以生成一个映射,其中值是数组而不是列表或其他集合类型? 例如:我有一个类。事物有所有者,所以有一个方法。在一个事物流中,我想按所有者ID对事物进行分组,以便具有相同所有者ID的事物最终在一个数组中。换句话说,我想要一个像下面这样的映射,其中键是所有者ID,值是属于该所有者的事物数组。 在我的例子中,因为我需要将映射值传递给一个需要数组的库方法,所以收集到一个< code >映射中是

  • 问题内容: 例如 输入:[‘A’,’Z’,’F’,’D’,…] 输出:[0,25,5,3,…] 在C语言中,我只是从’A’中减去char,但是我似乎无法在Java中做到这一点。 问题答案: 您也可以在Java中使用char进行简单的数学运算: 将输出0。