首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Java 8对代码执行操作

使用Java 8对代码执行操作
EN

Stack Overflow用户
提问于 2014-07-23 21:10:01
回答 3查看 149关注 0票数 0

我有一个遍历Map的方法,它对值执行操作,然后填充Map以返回。

我的问题是,如何将其转换为Java 8(在不循环的情况下执行操作)?

代码:

代码语言:javascript
复制
private static Map<String, Object> iterateAndConvertValueXmlToString(Map<String, Object> data) {
    Map<String, Object> returnMap = new HashMap<>();
    for (Map.Entry<String,Object> entry : data.entrySet()) {
        returnMap.put(entry.getKey(), getXmlAsString((String)entry.getValue()));
    }
    return returnMap;
}
EN

回答 3

Stack Overflow用户

发布于 2014-07-23 21:18:22

代码语言:javascript
复制
private static Map<String, Object> convertXmlValueToString(Map<String, Object> data) {
    return data.entrySet().stream().collect(Collectors.toMap(
        Map.Entry::getKey,
        entry -> getXmlAsString((String)entry.getValue())
    ));
}

顺便说一句:返回类型不应该是Map<String, String>而不是Map<String, Object>

票数 2
EN

Stack Overflow用户

发布于 2014-07-23 21:34:12

除非绝对需要,否则避免使用forEach,而应该使用收集器。

代码语言:javascript
复制
   public static final String getXmlAsString(final Object xmlObject) {

        return xmlObject.toString();

    }

    public static final Map<String, String> xmlObjectToString(final Map<String, Object> xmlObjectsByString) {
        return xmlObjectsByString.entrySet()
                .stream()
                .collect(Collectors.toMap(Map.Entry::getKey, entry -> getXmlAsString(entry.getValue())));
    }

    public static final void main(final String... args) {

        final Map<String, Object> xmlObjectsByString = new HashMap<>();
        xmlObjectsByString.put("Mykey", "<xml/>");

        final Map<String, String> xmlStringsByString = xmlObjectToString(xmlObjectsByString);

        // {Mykey=<xml/>}
        System.out.println(xmlStringsByString);
    }
票数 2
EN

Stack Overflow用户

发布于 2014-07-23 21:17:11

快速伪代码可能会导致这样的结果-

代码语言:javascript
复制
data.entrySet().forEach((entry) -> returnMap.put(entry.getKey(), getXmlAsString((String)entry.getValue())));
return returnMap;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24911388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档