Here you can find the source of putAll(M map, Iterable extends Map extends K, ? extends V>> values)
public static <K, V, M extends Map<K, V>> M putAll(M map, Iterable<? extends Map<? extends K, ? extends V>> values)
//package com.java2s; import java.util.Map; public class Main { /**//from ww w . j ava 2 s. c o m * Folds all the specified values into the supplied map and returns it. */ public static <K, V, M extends Map<K, V>> M putAll(M map, Iterable<? extends Map<? extends K, ? extends V>> values) { for (Map<? extends K, ? extends V> val : values) { map.putAll(val); } return map; } }