/**
* 返回指定值类型的Map
*/
public static <V> Map<String, V> mapThem(String[] keys, V... vals) {
// 判断数据
if (keys == null || vals == null || keys.length == 0 || vals.length == 0) {
return new HashMap<String, V>(0);
}
// 为了避免下标越界,取健与值的最小值
int len = Math.min(keys.length, vals.length);
// 创建len+1且扩展基数为1.0的MAP用于存放传输而来的数据
// 关于第二个参数,默认值是0.75,即put到容量的0.75时开始扩大存储空间
// 此处设置为1f,而且长度为len+1,避免了扩容操作,因为长度是固定的
Map<String, V> map = new HashMap<String, V>(len+1, 1f);
for (int i = 0; i < len; i++) {
map.put(keys[i], vals[i]);
}
return map;
}
// 使用
public static void main(String[] args) {
Map<String, String> map = MapUtil.<String> mapThem(new String[] { "datetime" }, timeline);
for (Map.Entry<String, String> item : map.entrySet()) {
System.out.println(item.getKey() + ":" + item.getValue());
}
}