Map接口
1. Map接口提供了一中映射关系,其中的元素是键值对(key-value)的形式存储的,能够实现根据Key快速查找value。Key-value可以是任何对象,是以Entry类型的对象实例存在的。
2.Key是不可以重复的,Value是可以重复的。Key-value都可以为null,不过只能有一个key是null。
3.map支持泛型,Map<K,V>
4.每个键最多只能映射到一个值
5.Map接口提供了分别返回key值集合、value值集合以及Entry(键值对)集合的方法
6.通过put<K key,V value>,remove<Object key>操作数据
二、HashMap.
*1.HashMap中的Entry对象是无序排列的,HashMap是Map的一个重要实现类,也是最常用的,基于哈希表是实现
* 2.HashMap是一个最常用的Map,它根据键的hashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。
* 3.HashMap最多只允许一条记录的键为null,允许多条记录的值为null。 Key值和Value值都可以为Null,但是一个HashMap只能有一个key值为Null的映射(key值不可重复)
* 4.HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致。
Map增删改查:
增:map的put(key,value)方法添加。
查:1.利用keyset()方法获得Map中key的集合,再遍历key的集合,利用Map的get(key)方法得到key对应的value值。
2.利用EntrySet方法获取May中Entry对象集:然后用foreach遍历集,再用Entry集的getkay()和getvalue()方法得到每一个key值和value值。
删:remove(object key)
改:put(原有的key,新的value)
通过entrySet可以返回Map中的所有键值对
Set<Entry<String,Student>>entrySet = students.entrySet();
map.get(ID)是采用Map的get()方法,检测是否存在值为ID的学生,如果没有,则返回null.
keySet()方法,返回所有键的Set集合。
取得Map的容量可用size()方法。
keyset()返回Map中所有的key以集合的形式可用Set集合接收,HashMap当中的映射是无序的。
修改 也是put方法 只需将value中的name更改,key不变