java list数据 列转行
时间: 2024-02-05 17:08:24 浏览: 34
在Java中,可以使用流(Stream)和flatMap操作来实现列表数据的列转行。
下面是一个示例代码,演示了如何将一个包含多个用户对象的列表,转换为一个包含所有部门对象的列表:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
// 创建用户对象
User user1 = new User();
user1.setDeptList(Collections.singletonList("dept1"));
User user2 = new User();
user2.setDeptList(Collections.singletonList("dept2"));
User user3 = new User();
user3.setDeptList(Collections.singletonList("dept3"));
// 创建用户列表
List<User> userList = new ArrayList<>();
userList.add(user1);
userList.add(user2);
userList.add(user3);
// 列转行操作
List<String> deptList = userList.stream()
.filter(user -> user.getDeptList() != null && !user.getDeptList().isEmpty())
.flatMap(user -> user.getDeptList().stream())
.collect(Collectors.toList());
// 输出结果
System.out.println(deptList);
}
}
class User {
private List<String> deptList;
public List<String> getDeptList() {
return deptList;
}
public void setDeptList(List<String> deptList) {
this.deptList = deptList;
}
}
```
运行以上代码,将会输出一个包含所有部门的列表。