【问题标题】:Convert Properties to HashMap Directly Using Streams [duplicate]使用流直接将属性转换为 HashMap [重复]
【发布时间】:2021-04-30 04:17:02
【问题描述】:

我正在尝试将属性对象转换为 HashMap。我可以将其转换为 Map,但不能直接转换为 HashMap。

到目前为止,我已经这样做了:

dbProperties.entrySet().stream().collect(Collectors.toMap(k -> k.getKey().toString(), v -> v.getValue().toString()));

这给了我一个 Map。有没有办法在不强制转换或其他任何东西的情况下将其转换为 HashMap

【问题讨论】:

标签: java java-8 java-stream


【解决方案1】:

您可以通过提供BinaryOperator and Supplier 来做到这一点。

import java.util.HashMap;
import java.util.Properties;
import java.util.stream.Collectors;

public class Main {
    public static void main(String args[]) {
        Properties dbProperties = new Properties();
        dbProperties.put("One", "1");
        dbProperties.put("Two", "2");

        HashMap<String, String> map = 
                dbProperties.entrySet()
                            .stream()
                            .collect(Collectors
                                        .toMap(k -> k.getKey().toString(), 
                                                v -> v.getValue().toString(), 
                                                (v1, v2) -> v1, 
                                                HashMap::new
                                        )
                            );
        System.out.println(map);
    }
}

输出:

{One=1, Two=2}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-09
    • 2016-12-07
    • 2014-03-12
    • 2015-06-01
    • 2018-04-12
    • 1970-01-01
    • 2021-12-30
    • 2017-02-11
    相关资源
    最近更新 更多