java 列数据变行数据
时间: 2023-10-26 21:23:21 浏览: 43
将列数据转换成行数据可以使用Java 8中的Stream API来实现。具体实现步骤如下:
假设有一个包含多个对象的列表,每个对象包含多个属性,我们要将这些属性转换成行数据,即每个行数据包含所有对象的某个属性。
1. 使用Stream的`flatMap()`方法将列表中的每个对象转换为一个Stream。
2. 在`flatMap()`方法中使用`map()`方法将每个对象的属性转换为一个新的Stream。
3. 在`map()`方法中使用`Collectors.toList()`方法将属性转换为一个列表。
4. 在`toList()`方法中使用`Collectors.joining()`方法将列表中的属性以指定的分隔符连接起来。
示例代码如下:
```java
List<Person> persons = new ArrayList<>();
persons.add(new Person("Alice", 25, "female"));
persons.add(new Person("Bob", 30, "male"));
persons.add(new Person("Charlie", 35, "male"));
String names = persons.stream()
.flatMap(person -> Stream.of(person.getName()))
.map(name -> Arrays.asList(name))
.collect(Collectors.toList())
.stream()
.map(list -> list.stream().collect(Collectors.joining(",")))
.collect(Collectors.joining(";"));
System.out.println(names);
```
在上面的示例代码中,我们将一个包含三个Person对象的列表转换成了一个包含所有Person对象的名称的行数据,多个名称之间用逗号分隔,不同行数据之间用分号分隔。