当前位置: 首页 > 编程笔记 >

Java 8中迭代带有索引的流(Stream)

长孙修远
2023-03-14
本文向大家介绍Java 8中迭代带有索引的流(Stream),包括了Java 8中迭代带有索引的流(Stream)的使用技巧和注意事项,需要的朋友参考一下

要在Java 8中迭代带有索引的流,代码如下-

示例

import java.util.stream.IntStream;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
public class Demo{
   public static void main(String[] args){
      String[] my_array = { "T", "h", "i", "s", "s","a", "m", "p", "l", "e" };
      AtomicInteger my_index = new AtomicInteger();
      System.out.println("字符串数组中的元素是:");
      Arrays.stream(my_array).map(str -> my_index.getAndIncrement() + " -> " + str).forEach(System.out::println);
   }
}

输出结果

字符串数组中的元素是:
0 -> T
1 -> h
2 -> i
3 -> s
4 -> s
5 -> a
6 -> m
7 -> p
8 -> l
9 -> e

名为Demo的类包含主要功能。 在此主要函数中,声明了一个字符串类型的数组,并使用AtomicInteger类创建了AtomicInteger实例。  “ getAndIncrement”函数用于对字符串数组的元素进行迭代,并将迭代的每个元素都打印到控制台上。

 类似资料:
  • 我在迭代一个对象内的列表时遇到了一个问题,该对象内嵌在另一个映射中。我的目标是迭代这个列表并生成一个映射 ,我希望使用streams和lamdas来实现这一点。 我在上面看到了,我需要通过迭代FolderBo中的elementList从elementBo创建一个带有map 的映射。folderBo本身就在Modelbo的地图内。

  • 问题内容: 在访问流中的索引时,是否有一种简洁的方法可以在流上进行迭代? 与此处给出的LINQ示例相比,这似乎令人失望 有没有更简洁的方法? 此外,似乎拉链已移动或已被移除… 问题答案: 最干净的方法是从索引流开始: 结果列表仅包含“ Erik”。 当你习惯于循环时,一种看起来更熟悉的替代方法是使用可变对象维护临时计数器,例如: 注意,在并行流上使用后一种方法可能会中断,因为不必“按顺序”处理项目

  • 有没有一种简单的方法可以在访问流中的索引的同时对流进行迭代? 这与上面给出的LINQ示例相比似乎相当令人失望 有没有更简洁的方式? 而且,拉链似乎不是动了就是被拆了...

  • 我找不到用当前对象和当前索引调用lamda的forEach方法。 不幸的是,这不是在java8中实现的,因此以下实现是不可能的: 为什么没有为我提供此功能的实用工具? 为什么不在java方法中实现? 有没有我没有找到的提供此功能的好实用工具?

  • 我有一个映射,它包含日期作为键和(另一个字符串作为键和列表作为值的映射)作为值。,我想填充另一个将String作为键和double作为值的映射。FlexiServer的内容包括 因此,基本上,我想首先迭代外部映射以获得内部映射,然后迭代内部映射以获得FlexiServers列表,并填充新的映射,其中服务器号作为键,数量列表作为值。我如何使用Java8流来实现这一点呢? 我尝试使用for循环,但我希

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