Map测重于查找,一般不用于输出,输出的复杂度太高为:N*N 。
一、HashMap
在数据量小时,HashMap是按照链表模式存储的。当数据量变大之后,为了快速的查找,那么会将这个链表变为 一个红黑树(均衡二叉树),用hash码作为数据的定位,来保存的。
二、HashTable
JDK 1.0提供有三大主要类 Vector, Enumeration,HashTable。HashTable是最早实现二元偶对象的数据结构,后期的设计的时候也让其与Vector一样实现了Map接口。
三、ConcurrentHashMap
HashTable的线程安全性+HashMap的高性能
保证多个线程更新数据的同步,又可以保证高效的查询速度。
四、Map的输出
Map<Integer,String> map=new HashMap<>();
map.put(1,"ooo");
map.put(3,"iiii");
Set<Map.Entry<Integer,String>> set = map.entrySet();
Iterator<Map.Entry<Integer,String>> iter=set.iterator();
while(iter.hasNext()){
Map.Entry<Integer,String> me=iter.next();
System.out.println(me.getKey()+"="+me.getValue());
}
说明: Map的key可以为自定义类型,但须覆写hashCode和equals方法。(系统类String和Integer)