public static <K,V1,V2> Map<K, Douce<V1,V2>> joinDouce(Map<K,V1> map1, Map<K,V2> map2) {
		HashMap<K, Douce<V1, V2>> ret = new HashMap<>();
		
		for (Entry<K, V1> entry : map1.entrySet()) {
			ret.put(entry.getKey(), new Douce<V1, V2>(entry.getValue(), null));
		}
		for (Entry<K, V2> entry : map2.entrySet()) {
			K key = entry.getKey();
			Douce<V1, V2> douce = ret.get(key);
			V2 value = entry.getValue();
			if (douce == null) {
				ret.put(key, new Douce<V1, V2>(null, value));
			} else {
				douce.set2(value);
			}
		}
		
		return ret;
	}