什么是集合
- 集合实际上就是一个容器,可以容纳其他类型的数据?集合为什么在开发中使用很多?
- 可以一次承载多个对象,在实际开发中,假设连接数据库,数据库中有10条记录,我们可以把它封装成10个对象,然后存放在一个集合中,要用的时候拿出来一起用
- 不能直接存储基本数据类型,也不能存储java对象。集合中存储的是java对象的内存地址。存储的是-引用,集合在java中本身就是一个对象。
- 在java中每一个不同的集合,底层对应不同的数据结构,往不同的集合中存储元素等于把数据放到了不同的数据结构中。不同的数据结构,数据存储方式不同。比如:数组,二叉树,哈希表
- java已经将数据结构实现了,变成了集合类,只要掌握怎么用即可。
- 集合在javaJDK中的java.util包下
- 在java中集合分为两大类:
- 单个方式存储元素 这一类集合的超级父接口是java.util.Collection
- 以键值对的方式存储元素,这一类集合的超级父接口是java.util.Map
- Iterator it = “Collection对象”.iterator(); it是集合的迭代器对象
- 所有集合都继承Iterable的含义是,所有集合都是可迭代的。
- Set集合的继承结构图
- Map集合继承结构图
- 总结
- ArrayList:底层是数组
- LinkedList:底层是双向链表
- Vector:底层是数组,线程安全,使用较少
- HashSet:底层是HashMap。放到HashSet中的元素相当于放到HashMap集合的key
- TreeSet:底层是一个TreeMap,放到HashSet中的元素相当于放到TreeMap集合的key
- HashMap:底层是哈希表
- Hashtable:底层也是哈希表,只不过线程安全,效率较低
- Properties:是线程安全的,但是key,value只能存储String
- 底层是二叉树。TreeMap集合的key可以按照大小自动排序
- List集合存储元素的特点:有序,存储和取出顺序相同,有下标。可重复
- Set(Map)集合存储元素的特点:无序,可重复
- SortedSet集合存储元素的特点:无序不可重复但是可排序