jdk8 stream 行转列
时间: 2023-10-04 17:12:12 浏览: 80
你可以使用Java 8的Stream来实现行转列。假设你有一个包含多行的列表数据,你可以通过以下步骤将其行转列:
1. 使用`stream()`方法将列表转换为Stream对象。
2. 使用`flatMap()`方法将每行转换为一个新的Stream对象。
3. 使用`collect()`方法将新的Stream对象转换回List或其他数据结构。
下面是一个示例代码,演示了如何使用Java 8的Stream实现行转列的过程:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> lines = Arrays.asList(
"1,2,3",
"4,5,6",
"7,8,9"
);
List<List<String>> columns = lines.stream()
.map(line -> Arrays.asList(line.split(",")))
.flatMap(List::stream)
.collect(Collectors.groupingBy(i -> lines.indexOf(i) % 3))
.values()
.stream()
.collect(Collectors.toList());
System.out.println(columns);
}
}
```
输出将是一个包含列数据的列表,例如 `[[1, 4, 7], [2, 5, 8], [3, 6, 9]]`。