java - 使用流从 List<HashMap> 收集键

标签 java java-stream

我有一个 List<ExcelData>称为dataBeanList。 ExcelData 类有变量 HashMap<String, Integer>卡号。

我想从 List<ExcelData> 获取所有 key .我尝试了以下方法,但我获得了 List<List<String>>值。但是我想得到 List<String>值。你能帮我吗?

List<List<String>> collect = dataBeanList
                .stream()
                .map(excelData ->
                        excelData.getCardNumber().keySet()
                                .stream()
                                .collect(Collectors.toList()))
                .collect(Collectors.toList());

最佳答案

基于@ernest_k 在评论中提供的答案(他还谈到如果键重复并且您只需要不同的键,则使用将其转换为集合):

List<String> collect = dataBeanList
                .stream()
                .map(excelData ->
                        excelData.getCardNumber().keySet()
                                .stream()
                                .collect(Collectors.toList()))
                .flatMap(List::stream)
                .collect(Collectors.toList());

关于java - 使用流从 List<HashMap> 收集键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63111748/

相关文章:

java - 如何使用 JPA 从表中获取多个列?

java - 如何通过 Java 使用 Selenium 打印 url 中的所有按钮文本

java - 尝试使用 Hibernate 添加 ORM 层时出现 NullPointerException

java - 多线程java中的队列是无阻塞的

Java 8 Stream API - 仅选择 Collectors.groupingBy(..) 之后的值

java - java流过滤器中的if-else

java-8 - 使用 Java 8 流在 LocalDate 属性的对象列表中查找最近的日期

java - 使用 Stream.reduce 求逆和不正确

java - Spring Boot中如何使用阻塞队列?

java - 清除 JTextFields 的字段