Map合并

最近工作中碰到了一个技术需求,需要将新获取的Map与之前的Map数据合并,两个Map中的数据的key值有重复。
要想保持数据完整,就需要将其中一个Map重复的key值改变。
经上网查询后,我发现改变的方案只有一种(我只找到一种),就是新建一个key-value对,然后再删除旧的key-value对。
下面是我测试写的代码。
public class Test{
    public HashMap test1(){
        HashMap hm = new HashMap();
        HashMap hm1 = new HashMap();
        HashMap hm2 = new HashMap();
        hm1.put("Java","222");
        hm1.put("PHP","111");
        hm1.put("C++","333");
        hm2.put("Java","aaa");
        hm2.put("PHP","bbb");
        hm2.put("C++","ccc");
        hm.put("0",hm1);
        hm.put("1",hm2);
        return hm;
    }
     public HashMap test(){
        HashMap hm = new HashMap();
        HashMap hm1 = new HashMap();
        HashMap hm2 = new HashMap();
        hm1.put("Java","aaa");
        hm1.put("PHP","222");
        hm1.put("C++","555");
        hm2.put("Java","abc");
        hm2.put("PHP","123");
        hm2.put("C++","234");
        hm.put("0",hm1);
        hm.put("1",hm2);
        return hm;
    }
    public static void main(String[] args){
        Test test = new Test();
        HashMap hm = test .test();
        HashMap hm1 = test .test1();
        for(int i = 0;i < hm1.size();i++){
            hm1.put(String.valueOf(hm.size()+i),hm1.get(String.valueOf(i)));
            hm1.remove(String.valueOf(i));
        }
        hm.putAll(hm1);
        System.out.println("最终 hm-->"+hm);
   }
}   
时间: 2024-11-11 05:39:36

Map合并的相关文章

两个map合并

两个map合并所用函数为:putAll package myProject; import java.util.HashMap; import java.util.Map; public class TestMapMerge { public static void main(String[] args) { Map<String,Object> map1=new HashMap<String,Object>(); Map<String,Object> map2=new

n个List&lt;Map&gt;合并,key值相等的value值相加

List<Map> maps1 =[{"bigtypes":100,"num":400},{"bigtypes":200,"num":300},{"bigtypes":400,"num":500},{"bigtypes":600,"num":500}] List<Map> maps2 =[{"bigtypes&qu

大数据:Map终结和Spill文件合并

当Mapper没有数据输入,mapper.run中的while循环会调用context.nextKeyValue就返回false,于是便返回到runNewMapper中,在这里程序会关闭输入通道和输出通道,这里关闭输出通道并没有关闭collector,必须要先flush一下. 获取更多大数据视频资料请加QQ群:947967114 代码结构: Maptask.runNewMapper->NewOutputCollector.close->MapOutputBuffer.flush 我们看flus

Sass函数--map

MapSass 的 map 常常被称为数据地图,也有人称其为数组,是以 key:value 成对的出现. 1 $map: ( 2 $key1: value1, 3 $key2: value2, 4 $key3: value3 5 ) 首先有一个类似于 Sass 的变量一样,用个 $ 加上命名空间来声明 map.后面紧接是一个小括号 (),将数据以 key:value 的形式赋予,其中 key 和 value 是成对出现,并且每对之间使用逗号 (,) 分隔,其中最后一组后面没有逗号.其中键 key

Sass Maps的函数-map-values($map)、map-merge($map1,$map2)

map-values($map) map-values($map) 函数类似于 map-keys($map) 功能,不同的是 map-values($map )获取的是 $map 的所有 value 值,可以说也将是一个列表.而且,map-values($map) 中如果有相同的 value 也将会全部获取出来. 如前面的示例,使用: map-values($social-colors) 将会返回: #ea4c89,#3b5998,#171515,#db4437,#55acee 值与值之前同样用

Sass 基本函数

Sass 中的常用函数 一.字符串函数 1. unquote($string): 删除字符串前后的引号,删除一对引号,如果这个字符串没有带有引号,将返回原始的字符串. 示例: .text1 { content: unquote("'hello'");} 2. quote($string): 给字符串添加引号,而且字符串中间有单引号或者空格时,需要用单引号或双引号括起,否则编译的时候将会报错(解决方案就是去掉空格,或者加上引号).同时 quote() 碰到特殊符号,比如: !.?.>

storm操作zookeeper源码分析-cluster.clj

storm操作zookeeper的主要函数都定义在命名空间backtype.storm.cluster中(即cluster.clj文件中).backtype.storm.cluster定义了两个重要protocol:ClusterState和StormClusterState.clojure中的protocol可以看成java中的接口,封装了一组方法.ClusterState协议中封装了一组与zookeeper进行交互的基础函数,如获取子节点函数,获取子节点数据函数等,ClusterState协

java学习日记 集合框架

集合框架 有两大接口  一个是 Collection (类集 )与Map (映射): collection 下有两大接口  一个是List (列表) 另一个是Set(集合) List (列表):ArrayList 基于数组实现的动态列表    动态数组 : LinkedList 基于链表实现的列表      双向循环链表 Vector 向量   ------>stack栈           与线程相关: Set (集合) :TreeSet       通过树实现的集合  有序集合 HashSe

Spark Job调优(Part 1)

原文链接:https://wongxingjun.github.io/2016/05/11/Spark-Job%E8%B0%83%E4%BC%98-Part-1/ Spark应用的执行效率是所有程序员需要关心的问题,单纯从代码层面去了解和优化明显是不够的,本文介绍Spark的底层执行模式,并给出了一些经验性的调优建议.本文是对Cloudera一篇博文的译文. 学习调优你的Spark Job获得最优的效率 当你通过公共API写Spark代码的时候,你会遇到诸如transformation,acti