Here you can find the source of merge(Map
public static <T1, T2, T3> Map<T1, T3> merge(Map<T1, T2> map1, Map<T2, T3> map2)
//package com.java2s; //License from project: Open Source License import java.util.*; public class Main { public static <T1, T2, T3> Map<T1, T3> merge(Map<T1, T2> map1, Map<T2, T3> map2) { Map<T1, T3> map3 = new HashMap<T1, T3>(map1.size()); merge(map1, map2, map3);// w w w .java 2 s . c o m return map3; } public static <T1, T2, T3> Map<T1, T3> merge(Map<T1, T2> map1, Map<T2, T3> map2, Map<T1, T3> map3) { for (Map.Entry<T1, T2> e1 : map1.entrySet()) { map3.put(e1.getKey(), map2.get(e1.getValue())); } return map3; } }