Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些接口或实现类。
Set和List接口是Collection接口派生的两个子接口,Queue是Java提供的队列实现,类似于List。
Map实现类用于保存具有映射关系的数据(key-value)。
集合的三大类 :
1.List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问。
1. Set集合是无序集合,集合中的元素不可以重复,访问集合中的元素只能根据元素本身来访问(也是不能集合里元素不允许重复的原因)。
2. Map集合中保存Key-value对形式的元素,访问时只能根据每项元素的key来访问其value。
常见问题:
1.Map系列(HashMap,HashTable,LinkedHashMap),是以键值对形式存在的。HashMap,HashTable存入数据是无序的,但LinkedHashMap是有序的。
HashTable与HashMap的区别:
a.相同:都实现了Map接口,实现了key和value的保存与映射,有很多相同的方法,两者的值都不能为null,如果插入已存在键的元素,会覆盖,不会报错。
b.不同:
Hashmap:是map接口的实现类 ,非同步,线程不安全 ,速度快,可以有null的键
Hashtable:继承了Dictionary类, 同步,线程安全,速度慢,不可以有null的键;
2.Set集合(HashSet)是无序集合,但它的子类LinkedHashSet是有序的。如果插入已存在键的元素,会覆盖,不会报错。
3.Hash系列:HashSet,HashMap,HashTable等。他们都有共同的特点。底层:
http://blog.youkuaiyun.com/mid120/article/details/51647845