package io.github.xwz.base;
import java.util.LinkedHashMap;
import java.util.Map;
public class ImmutableMap {
/**
* Create a map as list of key value pairs of the argument.
* <pre>
* Map<Integer, Integer> pairs = ImmutableMap.of(1,3, 2, 3);
* </pre>
*/
@SuppressWarnings("unchecked")
public static <K, V> Map<K, V> of(Object... keyValPair) {
Map<K, V> map = new LinkedHashMap<>();
if (keyValPair.length % 2 != 0) {
throw new IllegalArgumentException("Keys and values must be pairs.");
}
for (int i = 0; i < keyValPair.length; i += 2) {
map.put((K) keyValPair[i], (V) keyValPair[i + 1]);
}
return map;
}
}