简介
大致分为四种
- Set :
- 代表无需,不可重复的集合。
- List:
- 代表有序,重复的集合
- Map:
- 代表具有映射关系的集合
- Queue:
- 代表队列集合实现
和数组的区别
- 数组长度必须得初始化长度,长度是要提前知道。容易固定无法动态改变。但是集合可以保存数量不确定的数据。同时还能保存映射关系数据(键值对 key-value)
- 数组的元素可以对象或者基本类型,而集合只能是对象(保存对象的引用而非本身)
- 集合有着封装,继承,多态的特性,通过方法和属性实现复杂操作。
图例
MAP 类图例
Map由key和value两个值组成。里面的key是不可重复的,key用户标识集合里的每项数据。接口
Collection 接口
集合框架的根接口(Collection 继承了Iterable)
其中包含的增删改查等多个方法操作,其中还有 lterator 来遍历集合元素。lterator 迭代器
主要用法是为了遍历集合,其中有两个主要方法
1
2boolean hasNext();//如果有元素可以迭代,则返回true
next();//返回迭代的下一个元素
以下例子怎么迭代
1 | public class Demo { |
注意:
修改迭代变量的值是不会修改集合本身的元素。因为 lterator 并不是把集合元素传给迭代变量,只是传来值,如同参数传递。
set集合
Set 就是 Collection ,没有添加新的方法,只是 Set 不也许添加重复元素,不同的行为。
List 集合
元素有序,可重复的集合。集合中每个元素都有其对应的顺序索引。List集合允许使用重复元素,可以通过索引来访问指定位置的集合元素 。List集合默认按元素的添加顺序设置元素的索引,例如第一个添加的元素索引为0,第二个添加的元素索引为1……
List作为Collection接口的子接口,可以使用Collection接口里的全部方法。而且由于List是有序集合,因此List集合里增加了一些根据索引来操作集合元素的方法。
Map 集合
Map用户保存具有映射关系的数据,因此Map集合里保存着两组数,一组值用户保存Map里的key,另一组值用户保存Map里的value,key和value都可以是任何引用类型的数据。Map的key不允许重复,value可以重复。
Queue 集合
Queue用户模拟队列这种数据结构,队列通常是指“先进先出”(FIFO,first-in-first-out)的容器。队列的头部是在队列中存放时间最长的元素,队列的尾部是保存在队列中存放时间最短的元素。新元素插入(offer)到队列的尾部,访问元素(poll)操作会返回队列头部的元素。通常,队列不允许随机访问队列中的元素。