添加多个项目
我们可以使用 V put(K key,V value)
:
将指定的值与此映射中的指定键相关联(可选操作)。如果映射先前包含键的映射,则旧值将替换为指定的值。
String currentVal;
Map<Integer, String> map = new TreeMap<>();
currentVal = map.put(1, "First element.");
System.out.println(currentVal);// Will print null
currentVal = map.put(2, "Second element.");
System.out.println(currentVal); // Will print null yet again
currentVal = map.put(2, "This will replace 'Second element'");
System.out.println(currentVal); // will print Second element.
System.out.println(map.size()); // Will print 2 as key having
// value 2 was replaced.
Map<Integer, String> map2 = new HashMap<>();
map2.put(2, "Element 2");
map2.put(3, "Element 3");
map.putAll(map2);
System.out.println(map.size());
输出:
3
要添加许多项,你可以使用如下内部类:
Map<Integer, String> map = new HashMap<>() {{
// This is now an anonymous inner class with an unnamed instance constructor
put(5, "high");
put(4, "low");
put(1, "too slow");
}};
请记住,创建匿名内部类并不总是有效并且可能导致内存泄漏,因此在可能的情况下,请使用初始化程序块:
static Map<Integer, String> map = new HashMap<>();
static {
// Now no inner classes are created so we can avoid memory leaks
put(5, "high");
put(4, "low");
put(1, "too slow");
}
上面的示例使地图成为静态。它还可以通过删除 static
的所有出现来在非静态环境中使用。
除此之外,大多数实现都支持 putAll
,它可以将一个地图中的所有条目添加到另一个地图中,如下所示:
another.putAll(one);