java为数据结构中的映射定义了一个接口java.util.map,他有四个实现类 分别是HashMap、HashTable、LinkedHashMap和TreeMap。
Map集合
存放元素:键值对(也叫名值对)
限制条件: value可以重复,key不可以重复(若重复:后面的覆盖前面的)
Map集合中key是最主要的,所以一般不会选择整数来作为键(因为整数没有很好的描述当前值)
根据键得到值(get(key)方法)
1)HashMap 最常用的Map
特点:1.键不能重复 2.结果无序 3.查重规则是hashCode和equals 4.不支持线程同步
(如果需要同步,可以用Collections.synchronizedMap(HashMap map)方法使HashMap具有同步能力)
2)Hashtable
Hashtable与HashMap区别:
HashMap集合中的值可以为null(数量不限),键可以为null(最多一个,规则??),不支持线程同步
Hashtable集合中的键或者值都不能为null(规则??), 支持线程的同步(即任意时刻只有一个线程能写Hashtable),写入速度较慢
3)LinkedHashMap保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定先插入的(插入有序,那么可以普通for循环遍历吗),在遍历时,速度会比HashMap还要慢。有HashMap的全部特性
4)TreeMap
特点:1.键不能重复 2.结果有序(从小到大) 3.排序规则是比较器