in src/main/java/org/apache/commons/collections4/MapUtils.java [1656:1690]
public static <K, V> Map<K, V> putAll(final Map<K, V> map, final Object[] array) {
Objects.requireNonNull(map, "map");
if (array == null || array.length == 0) {
return map;
}
final Object obj = array[0];
if (obj instanceof Map.Entry) {
for (final Object element : array) {
// cast ok here, type is checked above
final Map.Entry<K, V> entry = (Map.Entry<K, V>) element;
map.put(entry.getKey(), entry.getValue());
}
} else if (obj instanceof KeyValue) {
for (final Object element : array) {
// cast ok here, type is checked above
final KeyValue<K, V> keyval = (KeyValue<K, V>) element;
map.put(keyval.getKey(), keyval.getValue());
}
} else if (obj instanceof Object[]) {
for (int i = 0; i < array.length; i++) {
final Object[] sub = (Object[]) array[i];
if (sub == null || sub.length < 2) {
throw new IllegalArgumentException("Invalid array element: " + i);
}
// these casts can fail if array has incorrect types
map.put((K) sub[0], (V) sub[1]);
}
} else {
for (int i = 0; i < array.length - 1;) {
// these casts can fail if array has incorrect types
map.put((K) array[i++], (V) array[i++]);
}
}
return map;
}