1、基本概念
一、数组实际上是一个集合,二集合是一个容器
二、集合不能直接存储基本数据类型,也不能存java对象,存储的是引用数据类型
list.add(100); //自动装箱Integer
三、java中每个不一样的集合底层会对应不一样的数据结构,往不一样的集合中存储元素等于将数据放到不一样的数据结构当中(如:数组、二叉树、链表、哈希表...)
四、集合都在java.untl下
2、uml图展现集合继承结构图(暂缺)
3、总结
一、ArrayList:底层是数组
二、LinkedList:底层是双向链表
三、vector:底层是数组,线程是安全的,效率较低,使用较少
四、HashSet:底层是HashMap,等同于放到HashMap集合的Key部分
五、TreeSet:底层是TreeMap,等同于放到TreeMap集合的Key部分
六、HashMap:底层是哈希表
七、Hashtable:底层是哈希表,只不过线程是安全的,效率较低,使用较少
八、Properties:线程安全的,而且Key和Value只能存String
九、TreeMap:底层二叉树,FreeMap集合Key,能够自动按照顺序排序
4、List集合特别:
一、LIst集合存储元素特色:有序可重复
二、set集合存储元素特色:无序不可重复,无元素下标
三、sortedSet元素存储元素特别:无序不可重复,可是集合中元素是可排序的(可按照大小顺序排序)
Map集合的key,就是一个Set集合,往Set集合中放数据,其实就是放入Map集合的Key部分