首页 > 其他分享 >map 对比

map 对比

时间:2024-04-28 20:55:45浏览次数:15  
标签:map entry java String list import new 对比

package main;

import com.fasterxml.jackson.databind.ObjectMapper;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class JsonDiff {

  public static String decimalTransform(Object obj){
      String value = obj.toString();
      Pattern pattern = Pattern.compile("^-?\\d+(\\.\\d+)?$"); // 匹配整数或小数
      Matcher matcher = pattern.matcher(value);
      if(matcher.matches()){
          value=   new BigDecimal(value).setScale(2, RoundingMode.HALF_UP).toString();
      }
      return value;
  }


  public static List<Map<String,String>> transformMapVlaue(List<Map<Object,Object>> datas) {
      List<Map<String,String>> list =new ArrayList<>();
      for (Map<Object, Object> map : datas) {
          Map<String,String> v_map= new HashMap<>();
          for (Map.Entry<Object, Object> entry : map.entrySet()) {
              String key =(String) entry.getKey();
//              String value =(String) entry.getValue().toString();
              String value=(entry.getValue().toString() != null) ?entry.getValue().toString() : "";
               decimalTransform(value);
              v_map.put(key,decimalTransform(value));
          }
          list.add(v_map);
      }


          return list ;


  }


    public static void main(String[] args) {

        String jsonString = "[{\"name\": \"Alice\", \"age\": 30}, {\"name\": \"Bob\", \"age\": 25}]";
        ObjectMapper objectMapper = new ObjectMapper();


    }





}

 

 

package main;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.util.List;
import java.util.Map;


public class JsonToMapExample {
    public static void main(String[] args) {
        String json = "[{\"name\": \"Alice\", \"age\": 30, \"sex\": 1}, {\"name\": \"Bob\", \"age\": 25}, {\"name\": \"Bob\", \"age\":1}]";
        Gson gson = new Gson();
        Type listType = new TypeToken<List<Map<Object, Object>>>(){}.getType();
        List<Map<Object, Object>> list = gson.fromJson(json, listType);
        for (Map<Object, Object> item : list) {
            System.out.println(item);
            for (Map.Entry<Object, Object> entry : item.entrySet()) {

           String  entryValue=   JsonDiff.decimalTransform(entry.getValue());
                System.out.println(entryValue);
            }
        }

      List<Map<String,String>> list_new=   JsonDiff.transformMapVlaue(list);
//        System.out.println(list_new.hashCode());
        for (Map<String, String> entry : list_new) {
            System.out.println(entry+">"+entry.hashCode());

        }



//        System.out.println(list_new);


    }
}

 

标签:map,entry,java,String,list,import,new,对比
From: https://www.cnblogs.com/linbo3168/p/18164468

相关文章

  • IMAP要点解读:旅行前必备知识,轻松畅游全球!
    你是否经常因会议而出差,需要在各种设备上灵活地访问你的电子邮件?如果是的话,你可能会想了解你的电子邮件系统是如何通过使用互联网消息访问协议(IMAP)来工作的,这样当你不在办公桌前时,你可以高效地处理你的电子邮件。IMAP是一种用于从服务器接收电子邮件的协议,最初由MarkCrispin在198......
  • jdk17对比jdk8
    Lambda表达式/***Lambda表达式*/privatestaticvoidlambda(){//JDK8List<Integer>list=Arrays.asList(1,2,3,4,5);list.forEach(n->System.out.println(n));//JDK17List<Integer&g......
  • SpringBoot中几种好用的代码生成器(基于Mybatis-plus生成entity、mapper、xml等)
    前言熟悉Spring框架的同学一定都知道MVC开发模式吧,控制器(Controller)、业务类(Service)、持久层(Repository)、数据库映射(Mapper)、各种DO类构成了我们服务端的代码。初学的时候,觉得新鲜手写这些东西不觉得有啥,但是写久了就会觉得很烦。好不容易在数据库中写完了一遍字段,在Java代码又要......
  • SpringMVC(1)-@RequestMapping的简单使用
    本文核心内容来自于韩顺平老师的课程@RequestMapping注解可以用来指定控制器或者处理器的某个方法的请求url@ControllerpublicclassUserServlet{@RequestMapping("/login")publicStringlogin(){return"login";}}1@RequestMappi......
  • OLAP开源引擎对比之历史概述
    前言OLAP概念诞生于1993年,工具则出现在更早以前,有史可查的第一款OLAP工具是1975年问世的Express,后来走进千家万户的Excel也可归为此类,所以虽然很多数据人可能没听过OLAP,但完全没打过交道的应该很少。这个概念主要是在大数据圈里流传,而在大数据领域里,目前主流的OLAP开源引擎都诞......
  • Nmap
    1.查看主机是否在线2.扫描主机开放的端口3.识别目标主机的操作XT4.检查自标主机开启服务的版本信息5.检测漏洞Windows图形化操作:https://www.bilibili.com/video/BV1k34y1N7hu?t=200.0https://www.bilibili.com/video/BV1k34y1N7hu?t=200.0第一种:Intensescan(nmap-T4-A......
  • MapReduce介绍
    MapReduce是一种编程模型,用于大规模数据集(多达数十亿个数据项)的并行处理。它由Google开发,用于简化大量数据的处理,特别是分布式系统中的数据。MapReduce模型的核心思想是将大型计算分解成多个小块,这些小块可以并行执行。它主要包括两个步骤:Map和Reduce。MapReduce的工作流程......
  • notepad++ 安装compare文件对比插件&失败解决办法
    1.首先notepad++安装compare方法:在菜单栏点击“插件”》插件管理   搜索:compare 点击YES 因为国内网络原因,可能会安装失败,也可能安装比较久。2.自己解压安装:  下载解压包:链接:https://pan.baidu.com/s/1B8hZJCJ8PLZgwdYzQeWGpQ提取码:7n2s  点击打开插件......
  • 2024-04-26 moment.js和day.js之用法和优缺点对比
    用法对比:Moment.js:时间戳转时间格式:moment(timestamp).format('YYYY-MM-DDHH:mm:ss')时间转时间戳:moment(dateString,'YYYY-MM-DDHH:mm:ss').valueOf()Day.js:时间戳转时间格式:dayjs(timestamp).format('YYYY-MM-DDHH:mm:ss')时间转时间戳:......
  • DataGear 5.0.0 新特性之dgMap图表选项
    DataGear企业版1.1.0已发布!http://datagear.tech/pro/DataGear在新发布的5.0.0版本中,重构了地图类图表,新增了dgMap图表选项,可以更方便灵活地设置图表地图。在5.0.0版本之前,由于没有图表地图选项,无法在新建图表时设置地图,只能在将图表加入看板后,通过看板提供的dg-chart-m......