zoukankan      html  css  js  c++  java
  • 优雅的将Map转为String工具类

    import com.alibaba.fastjson.JSONObject;
    import org.apache.commons.lang3.StringUtils;

    import java.lang.reflect.Array;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import java.util.Map;
    import java.util.stream.Collectors;

    /**
    * Created by hujunzheng on 2017/7/20.
    */
    public class MapToStringUtil {

    public static String toEqualString(Map<?, ?> map, char separator) {
    List<String> result = new ArrayList<>();
    map.entrySet().parallelStream().reduce(result, (first, second)->{
    first.add(second.getKey() + "=" + second.getValue());
    return first;
    }, (first, second)->{
    if (first == second) {
    return first;
    }
    first.addAll(second);
    return first;
    });

    return StringUtils.join(result, separator);
    }

    public static Map<String, String> maptoMapString(Map<String, ?> map) {
    return map.entrySet().stream().collect(Collectors.toMap(
    (entry) -> {
    return entry.getKey();
    },
    (entry) -> {
    if(entry.getValue().getClass().isArray()) {
    StringBuilder sb = new StringBuilder();
    for(int i=0; i<Array.getLength(entry.getValue()); ++i) {
    Object obj = Array.get(entry.getValue(), i);
    sb.append(obj.toString()).append(",");
    }
    if (sb.length() > 0) {
    sb.deleteCharAt(sb.length() - 1);
    }

    return sb.toString();
    } else {
    return entry.getValue().toString();
    }
    }
    ));
    }

    public static void main(String[] args) {
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("name", "hjz");
    jsonObject.put("age", 25);

    System.out.println(MapToStringUtil.toEqualString(jsonObject, ','));
    }
    }

    输出结果

    name=hjz,age=25

    参考:java8 reduce方法中的第三个参数combiner有什么作用?

  • 相关阅读:
    二分插入排序
    LEETCODE 返回两个正序数组的 中位数
    4的幂 算法
    leetcode 两个单链表两数相加
    KMP(The Knuth-Morris-Pratt Algorithm)
    Java Case Interview one
    AWK SED命令 简单入门
    Problem Fix List(always update)
    mysql存储过程快速上手
    java while和switch-case循环
  • 原文地址:https://www.cnblogs.com/hujunzheng/p/7211770.html
Copyright © 2011-2022 走看看