集合的概述:
1.什么是集合?有什么用?
数组其实就是一个集合。集合实际上就是一个容器,可以容纳其它类型的数据。
集合为什么在开发中使用较多?
集合是一个容器,是一个载体,可以一次容纳多个对象。
在传输很多数据时,可以把这么多数据放进集合中,只需要
传一个集合就可以了。
2.集合不能直接存储基本数据类型,也不是存储java对象,而是存储对象的地址。或者说集合存储的是引用。
当存基本数据类型时:list.add(100);//自动装箱成Integer
注意:集合本身就是一个容器,也是一个java对象。
集合中任何时候存储的都是java对象的内存地址。
3.在java中每一个不同的集合,底层会对应不同的数据结构。
例如:
ArrayList,底层是数组;
LinkedList,底层是链表;
TreeSet,底层是二叉树;
…
4.集合在java jdk中哪个包下?
java.util.*
所有集合类和集合接口都在java.util包下。
5.如果想学好集合这块内容,应该得理清集合的继承结构。
6.在java中集合分为两大类:
一类是单个方式存储元素;
这一类集合的超级父接口是:java.util.Collection
一类是以键值对的形式存储元素。
这一类集合的超级父接口是:java.util.Map
总结常用的实现类:
ArrayList:底层是数组。放进去的值可以重复。
LinkedList:底层是双向链表。
Vector:底层是数组,线程安全的,效率较低,使用较少。
HashSet:底层是HashMap,放到HashSet集合的元素等同于放到HashMap集合的key部分。
TreeSet:底层是TreeMap,放到TreeSet集合的元素等同于放到TreeMap集合的key部分。
HashMap:底层是哈希表。
Hashtable:底层也是哈希表,线程安全的,效率较低,使用较少。
Properties:是线程安全的,并且key和value只能存储字符串String。
TreeMap:底层是二叉树,TreeMap集合的key可以自动按照大小顺序排序。
List集合存储元素的特点:
有序可重复。
有序:存进去的顺序和取出来的顺序相同,每一个元素都有下标。
可重复:存进去一个1,可以再存进去一个1。
Set集合存储元素的特点:
无序不可重复。
无序:存进去的顺序和取出来的顺序不一定相同,另外每一个元素没有下标。
不可重复:存进去一个1,不能再存储一个1。
SortedSet集合存储元素的特点:
首先是无序不可重复的,但是SortedSet集合中的元素是可排序的。
无序:
不可重复:
可排序:可以按照大小进行排列。
常用集合的继承结构图:
简图:
详细图:
常用Map的继承结构图:
简图:
详细图: