------- android培训、java培训、期待与您交流! ----------
1.Map集合比较特殊,因为它是双列存储集合,一列是键,一列是值
2.特点:键是唯一的,并且只映射到一个值,所以说键值一一对应
3.Map和Collection的区别?
A:Map 存储的是键值对形式的元素,键唯一,值可以重复。
B:Collection 存储的是单独出现的元素,子接口Set元素唯一,子接口List元素可重复。
a:添加功能
V put(K key,V value):添加元素。
如果键是第一次存储,就直接存储元素,返回 null
如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值
b:删除功能
void clear():移除所有的键值对元素
V remove(Object key):根据键删除键值对元素,并把值返回
c:判断功能
boolean containsKey(Object key):判断集合是否包含指定的键
boolean containsValue(Object value):判断集合是否包含指定的值
boolean isEmpty():判断集合是否为空
d:获取功能
Set<Map.Entry<K,V>> entrySet():???
V get(Object key):根据键获取值
Set<K> keySet():获取集合中所有键的集合
Collection<V> values():获取集合中所有值的集合
e:长度功能
int size():返回集合中的键值对的个数
4.代码
import java.util.HashMap;
/*
使用EntrySet 遍历 HashMap
EntrySet : 键和值 关系的 集合.
K getKey() 返回与此entry对应的键。
V getValue()返回与此entry对应的值。
*/
public class MapDemo2 {
public static void main(String[] args) {
HashMap<Integer,String> hm = new HashMap<Integer , String>();
hm.put(1, "李大妈"); //保存元素
hm.put(2, "范冰冰");
hm.put(3, "熊黛林");
hm.put(4, "王丽坤");
hm.put(5, "罗玉凤");
System.out.println(hm);
//通过 entrySet 遍历
Set<Entry<Integer,String>> entrySet = hm.entrySet();
for (Entry<Integer, String> entry : entrySet) {
//System.out.println(entry.getKey() +"---"+ entry.getValue());// 推荐
if (entry.getKey()==1) {
entry.setValue("孙俪");
}
System.out.println(entry.getKey() +"---"+ entry.getValue());// 推荐
}
}
}
总结
当操作的数据具有键值对应关系时,使用Map集合是不错的,可以减少我们的工作量。
增强for循环对于Map集合来说高效快速,但是有个缺点,就是遍历时不能删除其中的元素,而迭代器itrator可以