集合
什么是集合,有什么用
集合实际上就是一个容器,可以来容纳其他类型的数据
集合为什么说在开发中使用比较多,?
集合不能直接存储基本数据类型,另外集合也不能直接存储java对象,集合当中存储的都是java对象的内存地址(或者说集合中存储的是引用)
注意:集合在java中本身是一个容器,是一个对象
集合中任何时候存储的都是”引用“
在java中每一个不同的集合。底层会对应不同的数据结构,往不同的集合中存储元素,等于将数据放到不同的数据结构当中,什么是数据结构?
数据存储的结构就是数据结构,不同的数据结构,数据存储方式不同:例如数组、二叉树、链表、哈希表……
以上这些都是常见的数据结构
使用了不同的集合,等同于使用了不同的数据结构。
- 在java集合这一章节,需要掌握的不是精通数据结构,java中已经将数据结构实现了,已经写好了这些常用的集合类,只需要掌握怎么用。在什么情况下选择哪一种合适的集合去使用即可
集合在java jdk中的java.util.*包下
结构图
Iterator it =“Collection 对象”.iterator();
it 是迭代器对象
- list集合存储元素特点:
- 有序可重复,存储的元素有下标。有序实际上是说存进去是这个顺序,取出来还是这个顺序,这里的顺序不是说按照大小排序。有序是因为list集合都有下标,下标从0开始,以1递增
- set集合存储元素特点:
- 无序不可重复。无序表示存进去是这个顺序,取出来就不定时这个顺序,另外set集合中元素没有下标,set集合中元素还不能重复
集合分为两大类
- 单个方式存储元素:
单个方式存储元素,这一类集合中超级父接口:java.util.Collection;
- 以键值对的方式存储元素
以键值对的方式存储元素,这一类集合中超级父接口:java.util.Map
5月4日
map集合
map
- map集合和collection集合没有关系
- Map集合以key和value的这种键值对的方式存储元素
- key和value都是存储java对象的内存地址。
- 所有Map集合的key特点:无序不可重复的。
map集合的key和set集合存储元素特点相同
总结(所有实现类)
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(SortedMap)集合存储元素特点:
首先是无序不可重复的,但是SortedSet集合中的元素是可排序的
无序:存进去的顺序和取出的顺序不一定相同。另外Set集合中元素是没有下标的。
不可重复:存进去1,不能再存储1
可排序:可以按照大小顺序排序
- Map集合的key。就是一个Set集合
往Set集合中放数据,实际上放到了Map集合的key部分