使用 forEach 循环在Java中展平列表流
给定Java中的列表流,任务是使用 forEach() 方法展平流。
例子:
Input: lists = [ [1, 2], [3, 4, 5, 6], [8, 9] ]
Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]
Input: lists = [ ['G', 'e', 'e', 'k', 's'], ['F', 'o', 'r'] ]
Output: [G, e, e, k, s, F, o, r]
方法:
- 以二维列表的形式获取列表。
- 创建一个空列表来收集展平的元素。
- 在 forEach 循环的帮助下,将列表中的每个元素转换为流并将其添加到列表中
- 现在使用 stream() 方法将此列表转换为流。
- 现在通过使用 collect() 方法将流转换为列表来展平流。
下面是上述方法的实现:
示例 1:使用整数列表。
// Java program to flatten a stream of lists
// using forEach() method
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.*;
class GFG {
// Function to flatten a Stream of Lists
public static Stream flattenStream(List > lists)
{
// Create an empty list to collect the stream
List finalList = new ArrayList<>();
// Using forEach loop
// convert the list into stream
// and add the stream into list
for (List list : lists) {
list.stream()
.forEach(finalList::add);
}
// Convert the list into Stream and return it
return finalList.stream();
}
public static void main(String[] args)
{
// Get the lists to be flattened.
List a = Arrays.asList(1, 2);
List b = Arrays.asList(3, 4, 5, 6);
List c = Arrays.asList(7, 8, 9);
List > arr = new ArrayList >();
arr.add(a);
arr.add(b);
arr.add(c);
// Flatten the Stream
List flatList = new ArrayList();
flatList = flattenStream(arr)
.collect(Collectors.toList());
// Print the flattened list
System.out.println(flatList);
}
}
输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
示例 2:使用字符列表。
// Java program to flatten a stream of lists
// using forEach() method
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.*;
class GFG {
// Function to flatten a Stream of Lists
public static Stream flattenStream(List > lists)
{
// Create an empty list to collect the stream
List finalList = new ArrayList<>();
// Using forEach loop
// convert the list into stream
// and add the stream into list
for (List list : lists) {
list.stream()
.forEach(finalList::add);
}
// Convert the list into Stream and return it
return finalList.stream();
}
public static void main(String[] args)
{
// Get the lists to be flattened.
List a = Arrays.asList('G', 'e', 'e', 'k', 's');
List b = Arrays.asList('F', 'o', 'r');
List c = Arrays.asList('G', 'e', 'e', 'k', 's');
List > arr = new ArrayList >();
arr.add(a);
arr.add(b);
arr.add(c);
// Flatten the Stream
List flatList = new ArrayList();
flatList = flattenStream(arr)
.collect(Collectors.toList());
// Print the flattened list
System.out.println(flatList);
}
}
输出:
[G, e, e, k, s, F, o, r, G, e, e, k, s]