如何使用lambda表达式或流制作地图的所有键和值的单个字符串

时间:2017-10-12 10:42:38

标签: string lambda collections java-8 java-stream

Map attributeMap = new TreeMap<>();

    attributeMap.put("C","FIRSTNAMe");
    attributeMap.put("C2","LASTNAMe");
    attributeMap.put("C3","1111");
    attributeMap.put("C4","ABCNAMe");

如何制作上述示例的单个字符串

输出是c,c2,c3,c4和FIRSTNAMe,LASTNAMe,'1111',ABCNAMe

1 个答案:

答案 0 :(得分:0)

这样的事情:

    Predicate<String> predicate = "1111"::equals;
    String left = attributeMap.keySet().stream().map(String::toLowerCase).collect(Collectors.joining(","));
    String right = attributeMap.values().stream().map(x -> (predicate.test(x) ? "'" + x + "'" : x)).collect(Collectors.joining(","));

    System.out.println(left + right);