- Map与Collection并列存在。用于保存具有映射关系的数据:key-value
- Map 中的 key 和 value 都可以是任何引用类型的数据
- Map 中的 key 用Set来存放,不允许重复,即同一个 Map 对象所对应的类,须重写hashCode()和equals()方法
- 常用String类作为Map的“键”
- key 和 value 之间存在单向一对一关系,即通过指定的 key 总能找到唯一的、确定的 value
- Map接口的常用实现类:HashMap、TreeMap、LinkedHashMap和Properties。其中,HashMap是 Map 接口使用频率最高的实现类
添加、删除、修改操作:
- Object put(Object key,Object value):将指定key-value添加到(或修改)当前map对象中
@Test
public void test14(){
Map map = new HashMap();
map.put(1,"肖路遥");
map.put(2,"王慧");
Set set = map.keySet();
Iterator iterator = set.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
Collection values = map.values();
Iterator iterator1 = values.iterator();
while (iterator1.hasNext()){
System.out.println(iterator1.next());
}
Set entrySet = map.entrySet();
for (Object mapping : entrySet){
Map.Entry entry = (Map.Entry) mapping;
System.out.println("key是:" + entry.getKey() + ",value是:" + entry.getValue());
}
}
- void putAll(Map m):将m中的所有key-value对存放到当前map中
@Test
public void test15(){
Map map = new HashMap();
map.put(1,"肖路遥");
map.put(2,"王慧");
Map map1 = new HashMap();
map1.putAll(map);
Set entrySet = map1.entrySet();
for (Object mapping : entrySet){
Map.Entry entry = (Map.Entry) mapping;
System.out.println("key是:" + entry.getKey() + ",value是:" + entry.getValue());
}
}
- Object remove(Object key):移除指定key的key-value对,并返回value
@Test
public void test16(){
Map map = new HashMap();
map.put(1,"肖路遥");
map.put(2,"王慧");
map.remove(1);
Set entrySet = map.entrySet();
for (Object mapping : entrySet){
Map.Entry entry = (Map.Entry) mapping;
System.out.println("key是:" + entry.getKey() + ",value是:" + entry.getValue());
}
}
- void clear():清空当前map中的所有数据
@Test
public void test17(){
Map map = new HashMap();
map.put(1,"肖路遥");
map.put(2,"王慧");
map.clear();
Set entrySet = map.entrySet();
for (Object mapping : entrySet){
Map.Entry entry = (Map.Entry) mapping;
System.out.println("key是:" + entry.getKey() + ",value是:" + entry.getValue());
}
}
元素查询的操作:
- Object get(Object key):获取指定key对应的value
@Test
public void test18(){
Map map = new HashMap();
map.put(1,"肖路遥");
map.put(2,"王慧");
Object o = map.get(1);
System.out.println(o);
}
- boolean containsKey(Object key):是否包含指定的key
- boolean containsValue(Object value):是否包含指定的value
@Test
public void test19(){
Map map = new HashMap();
map.put(1,"肖路遥");
map.put(2,"王慧");
System.out.println(map.containsKey(1));
System.out.println(map.containsValue("肖路遥"));
}
- int size():返回map中key-value对的个数
@Test
public void test20(){
Map map = new HashMap();
map.put(1,"肖路遥");
map.put(2,"王慧");
System.out.println(map.size());
}
- boolean isEmpty():判断当前map是否为空
@Test
public void test20(){
Map map = new HashMap();
map.put(1,"肖路遥");
map.put(2,"王慧");
System.out.println(map.isEmpty());
}
- boolean equals(Object obj):判断当前map和参数对象obj是否相等
@Test
public void test20(){
Map map = new HashMap();
map.put(1,"肖路遥");
map.put(2,"王慧");
Map map1 = new HashMap();
System.out.println(map.equals(map1));
}
元视图操作的方法:
- Set keySet():返回所有key构成的Set集合
- Collection values():返回所有value构成的Collection集合
- Set entrySet():返回所有key-value对构成的Set集合