集合(非常重要)
集合概述
-
什么是集合?有什么用?
-
集合实际上就是一个容器。可以用来容纳其他类型的容器,可以一次容纳多个对象。数组也是一个集合。
在实际开发中,假设连接数据库,数据库当中有10条记录。如果要查询这10条纪律,在java中会将10条数据封装成10个java对象,然后将10个java对象放到某一个集合当中,将集合传到前端,然后遍历集合,将数据展现出来。
-
-
集合不能直接存储基本数据类型,另外集合也不能直接存储java对象,集合当中存储的都是java对象的内存地址(引用)。集合也是一个对象
-
在java中每一个不同的集合,底层会对应不同的数据结构。往不同的集合中存储元素,等于将数据放到了不同的数据结构当中。
-
所有的集合类和集合接口都在java.util.* 包下
-
集合分为两大类
- 单个方式存储元素:这一类集合中超级父接口:java.util.Collection;
- 以键值对的方式存储元素:这一类集合中超级父接口:java.util.Map;
集合继承关系图
Collection继承关系
Map继承关系
小结
所有的实现类:
- ArrayList:底层是数组。
- LinkedList:底层是双向链表。
- Vector:底层是数组,线程安全的,效率较低,使用较少。
- HashSet:底层是HashMap,放到HashSet集合中的元素等同于放到 HashMap集合的key部分。
- TreeSet:底层是TreeMap,放到TreeSet集合中的元素等同于放到 TreeMap集合中的key部分。
- HashMap:底层是哈希表。
- Hashtable:底层是哈希表,线程安全,使用较少。
- Properties:线程安全的,并且key和Value只能存储字符串String。
- TreeMap:底层是二叉树。TreeMap集合的key可以自动大小顺序排序。
Collection常用类
- Collection中能存放什么元素?
- 没有使用“泛型”之前,Collection可以存储Object的所有子类型。
- 使用了“泛型”之后,Collection中只能存储某个具体的类型
- 集合中不能直接存储基本数据类型,也不能存储java对象,只是存储java对象的内存地址