目录
1.数组在存储数据的特点
2.Java集合框架
3.Collection中的常用方法
4.集合元素的遍历
1.数组在存储数据的特点
- 一旦初始化以后长度就确定了。
- 数组一旦定义好,其元素的类型也就确定了。
缺点
- 一旦初始化以后长度就不可以修改。
- 数组中提供的方法非常有限,对于增删改查等操作非常不方便。
- 获取数组中实际元素的个数的需求,数组没有现成的属性或方法。
- 数组存储数据的特点是有序的、可重复的,对于无序不可重复的数据存储没办法满足。
2.Java集合框架
Collection接口:单列集合,用来存储一个一个的对象
List接口:存储有序可重复的数据(又叫动态数组)
ArrayList、linkedList、Vector
HashSet、LinkedHashSet、TreeSet
HashMap、LinkedHashMap、TreeMap、HashTable、Properties
3.Collection中的常用方法
- add(Object e):向集合中添加数据。
- addAll(Collection col):将集合col中的数据都添加到集合中。
- size():获取集合中实际元素的个数。
- clear():清空当前集合。
- isEmpty():判断当前集合是否为空(判断是否包含元素)。
- contains(Object obj):判断集合中是否包含obj元素。(通过obj对象所在类的equals()方法看是否相等,如果相等就包含。)
- containsAll(Collection col):判断col中的所有元素是否都存在于当前集合中。
- remove(Object obj):删除集合中的obj元素
- removeAll(Collection col):移除当前集合中和col集合的交集元素。
- retainAll(Collection col):保留当前集合和col集合的交集。
- equeals(Object obj):判断两个集合的元素是否都相等。
- hashCode():获取当前对象的hash值。
- Object[] toArray():将当前集合转换成数组。
- iterator():返回Iterator接口的实例。
注意点:
- 向Collection接口的实现类中添加数据时,要求数据所在类重写equals()方法.(因为大部分方法都需要用到equals()方法)
- 数组转换成集合使用Arrays类的asList(Object...obj)方法
4.集合元素的遍历
遍历集合时,要使用Iterator(迭代器)的实例。
常用方法
- next():获取集合中的下一个元素,当下一个元素不存在时报异常。
- hasNext():判断集合的下一个元素是否存在。
- remove():将调用next()方法后获取的对象删除。
注意点:
- 如果没有调用过next()或者调用了next()后使用remove()再调用remove()会报错。
- 迭代器遍历只适用于Collection接口。
- 增强for循环的底层使用的也是迭代器。
步骤:
- 通过集合对象的iterator()方法获取迭代器对象。
- 写一个while循环,循环条件为hasNext()。
- 循环体中使用next()方法获取下一个对象。