一、Map:双列数据,存储key-value对的数据
HashMap:作为Map的主要实现类
LinkedHashMap:保证在遍历map元素时按照添加的顺序实现遍历。
原因:在原有的HashMap的底层结构基础上,添加了一对指针,指向前一个和后一个元素。
对于频繁的遍历操作,此类执行效率高于HashMap。
TreeMap:保证按照添加的key-value对进行排序,实现排序遍历。此时考虑key的自然排序或定制排序。
Hashtable:作为古老的实现类,不能存储null的key和value
二、Map结构的理解
Map中的key:无序的、不可重复的,使用Set存储所有的key;
Map中的value:无序的、可重复的,使用Collection存储所有的value
一个键值对:key-value构成了一个Entry对象。
Map中的entry:无序的、不可重复的使用Set存储所有的entry。
//遍历所有的key
Set set = map.keySet();
Iterator iterator = set.iterator();
while (iterator.hasNext())
System.out.println(iterator.next());
//遍历所有的value
Collection values = map.values();
for(Object obj:values){
System.out.println(obj);
}
//遍历所有的key-value
Set set1 = map.entrySet();
Iterator iterator1 = set1.iterator();
while (iterator1.hasNext())
{
Object obj = iterator1.next();
Map.Entry entry = (Map.Entry) obj;
System.out.println(entry.getKey()+"--->"+entry.getValue());
}
总结:常用方法
添加:put(Object key,Object value)
删除:remove(Object key)
修改:put(Object key,Object value)
查询:get(Object key)
长度:size()
遍历:keySet()/values()/entrySet()