Java使用Lambda表达式将List<List<String>>转为List<String>
时间: 2023-05-18 20:06:56 浏览: 66
可以使用flatMap方法将List<List<String>>转为List<String>,Lambda表达式如下:
List<List<String>> list = new ArrayList<>();
List<String> result = list.stream()
.flatMap(Collection::stream)
.collect(Collectors.toList());
相关问题
使用lambda表达式循环List<String>
可以使用 Java 8 中的 Lambda 表达式和 Stream API 对 List<String> 进行循环遍历。以下是示例代码:
```
List<String> list = Arrays.asList("apple", "banana", "orange");
list.forEach(str -> {
System.out.println(str);
});
```
在上述代码中,使用 `forEach()` 方法对 List 中的每个元素进行遍历,Lambda 表达式 `str -> { System.out.println(str); }` 表示打印每个元素的值。
java8的lambda表达式,将List<entity> 转为 List<dto>
假设你有以下的实体类 Entity 和数据传输对象 DTO:
```java
class Entity {
private String name;
private int age;
// 省略 getter 和 setter 方法
}
class DTO {
private String name;
private int age;
public DTO(String name, int age) {
this.name = name;
this.age = age;
}
// 省略 getter 和 setter 方法
}
```
你可以使用 Java 8 的 Lambda 表达式将 List\<Entity\> 转换为 List\<DTO\>,示例代码如下:
```java
List<Entity> entityList = new ArrayList<>();
entityList.add(new Entity("Alice", 18));
entityList.add(new Entity("Bob", 20));
List<DTO> dtoList = entityList.stream()
.map(entity -> new DTO(entity.getName(), entity.getAge()))
.collect(Collectors.toList());
```
以上代码中,首先创建了一个 `List<Entity>` 对象 `entityList`,并向其中添加了两个实体对象。然后使用 `entityList.stream()` 方法将其转换为一个流对象,使用 `map` 方法将 `Entity` 对象映射为 `DTO` 对象,并使用 `collect` 方法将 `DTO` 对象收集到一个新的 `List<DTO>` 对象 `dtoList` 中。
值得注意的是,上述代码中使用了构造方法 `new DTO(entity.getName(), entity.getAge())` 来创建新的 `DTO` 对象,也可以使用其他方式来创建 `DTO` 对象,例如使用 `DTO` 对象的 `Builder` 模式或者静态工厂方法等。