一、集合的体系结构
整个Java集合分为两大类:单列集合Collection,双列集合Map。
Collection的每个元素只包含一个值,而Map的每个元素包含两个值(键值对)。
二、Collection集合
1. Collection的集合体系
只要分为两大类:List 和 Set
- List:可重复,有索引,有序的
- Set:不可重复,无索引,无序的
关于Set的无索引:所以Set不能通过下标获取元素,所以也无法通过下标进行遍历。
关于Set的无序性: 保存的顺序和元素插入的顺序不一致。
2. Collection常用方法
- add(),remove():增加,删除。注意自定义类型是通过equals方法来匹配删除的,所以要重写equals方法才能按内容进行匹配删除。否则是按地址来匹配删除。
- clear():清空集合
- contains():判断一个元素是否存在,底层调用的是equals方法进行判断,所以自定义类型想要按内容匹配,也需要重写equals方法才能正常匹配。
- isEmpty():判空
- size():获取长度,size是collection接口的哦,所以所有集合都可以使用。
(对于数组,使用.length
属性。对于字符串,使用.length()
方法。对于集合用size()方法。)
3. contains方法的底层
通过contains方法的底层源码我们可以得知:
- 底层是通过从头到尾遍历所有元素,调用equals方法来一一比较的。所以对于自定义类如果要按内容进行判断一定要重写equals方法,String则是已经帮我们重写好了。
- 底层对于null的元素,则是通过 == 进行比较。所以Collection集合是能保存和判断null元素的。
4. Collection集合的遍历方式
Set是无索引的,它没有下标,所以不能按下标来遍历。所以身为分类,Collection中也没有获取下标的方法,自然也不能使用下标来遍历,所以在这里接收三种Collection集合通用的遍历方式。
4.1 迭代器遍历
------------------------END-------------------------
才疏学浅,谬误难免,欢迎各位批评指正。