HashMap,是Map接口的实现类,Key时无序存放的,其中Key是不可以重复的,它也是通过Hash码值来保证Key不重复的,Key和value是一一对应的。如果要加入的键值对和HashMap中键值对的Key是相同的就会将这个集合中的Key所队应的value值进行覆盖,在使用自定义类型作为Key时,那就是要覆盖hashCode(),equals()方法,也就是和HashSet中要放入自定义类型是的处理方法相同。这个类的对象是线程不安全的。
在遍历Map时,要使用其keySet()方法获得Key的一个Set集合,可以通过遍历这个Set,用get()方法来获得Key所对应的value,也就遍历了Map。
Hashtable,也是Map接口的实现类,他和HashMap比较相似,只不过这个类对象是重量级的,是线程安全的。他不允许Key和value为null。
Properties,这个类是Hashtable的子类,他的Key和value只能是字符串String类型。
SortedMap是Map的子接口
TreeMap,是SortedMap的实现类,他会按照Key进行排序。和TreeSet类一样,在使用自定义类作Key时,要用自定义类实现Comparable接口。
注意:其实HashSet底层就是一个HashMap,只不过其中的value值都是null值,而HashMap的底层是用数组实现的。
完整的集合框架
Collection接口 |
---|
List接口
ArratList类
LinkedList类
Set接口
SortedSet接口
TreeSet类
HashSet类
LinkedSet类
Map接口 |
---|
SortedMap接口
TreeMap类
HashMap类
Hashtable类
Properties类