在Java 8 中使用索引迭代流的程序
给定Java中的 Stream ,任务是在索引的帮助下对其进行迭代。
例子:
Input: Stream = [G, e, e, k, s]
Output: [0 -> G, 1 -> e, 2 -> e, 3 -> k, 4 -> s]
Input: Stream = [G, e, e, k, s, F, o, r, G, e, e, k, s]
Output: [0 -> G, 1 -> e, 2 -> e, 3 -> k, 4 -> s, 5 -> F, 6 -> o, 7 -> r, 8 -> G, 9 -> e, 10 -> e, 11 -> k, 12 -> s]
- 方法一:使用 IntStream。
- 使用 range() 方法从数组中获取 Stream。
- 使用 mapToObj() 方法将流的每个元素映射到与其关联的索引
- 打印带有索引的元素
// Java program to iterate over Stream with Indices import java.util.stream.IntStream; class GFG { public static void main(String[] args) { String[] array = { "G", "e", "e", "k", "s" }; // Iterate over the Stream with indices IntStream // Get the Stream from the array .range(0, array.length) // Map each elements of the stream // with an index associated with it .mapToObj(index -> String.format("%d -> %s", index, array[index])) // Print the elements with indices .forEach(System.out::println); } }
输出:0 -> G 1 -> e 2 -> e 3 -> k 4 -> s
- 方法 2:使用 AtomicInteger。
- 为索引创建一个 AtomicInteger。
- 使用 Arrays.stream() 方法从数组中获取 Stream。
- 使用 map() 方法将流的每个元素映射到与其关联的索引,其中每次在 getAndIncrement() 方法的帮助下通过自动递增索引从 AtomicInteger 获取索引。
- 打印带有索引的元素。
// Java program to iterate over Stream with Indices import java.util.stream.IntStream; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; class GFG { public static void main(String[] args) { String[] array = { "G", "e", "e", "k", "s" }; // Create an AtomicInteger for index AtomicInteger index = new AtomicInteger(); // Iterate over the Stream with indices Arrays // Get the Stream from the array .stream(array) // Map each elements of the stream // with an index associated with it .map(str -> index.getAndIncrement() + " -> " + str) // Print the elements with indices .forEach(System.out::println); } }
输出:0 -> G 1 -> e 2 -> e 3 -> k 4 -> s