List<Map<String,Object>> 中某一个值转List
时间: 2024-02-25 22:52:54 浏览: 90
如果你想从 `List<Map<String, Object>>` 中提取其中一个键对应的值,然后将这些值转换为一个新的 `List`,可以使用 Java 8 的流(Stream)API 和 `flatMap()` 方法。以下是一个示例代码:
```java
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Example {
public static void main(String[] args) {
List<Map<String, Object>> mapList = List.of(
Map.of("name", "Alice", "tags", List.of("tag1", "tag2")),
Map.of("name", "Bob", "tags", List.of("tag2", "tag3"))
);
List<String> tagList = mapList.stream()
.flatMap(map -> ((List<String>) map.get("tags")).stream())
.collect(Collectors.toList());
System.out.println(tagList);
// Output: [tag1, tag2, tag2, tag3]
}
}
```
在此示例中,我们从 `List<Map<String, Object>>` 中提取每个 `Map` 的 `tags` 值,并使用 `flatMap()` 方法将其展平为一个 `Stream<String>`。然后,我们使用 `collect()` 方法将这些字符串收集到一个新的 `List` 中。注意,我们使用 `(List<String>) map.get("tags")` 将 `Map` 中的值转换为 `List<String>`,因为 Java 的类型擦除限制了我们无法在编译时检查泛型类型。
阅读全文