一、集合体系图
二、集合
1、什么是集合?
数组的长度是固定的,添加元素如果超出会出现异常
集合能够存储任意对象,且长度是可变的,随着元素的增加而增加,随着元素的减少而减少
2、数组和集合的区别?
A、数组可以存放基本数据类型,也可以存储引用数据类型
基本数据类型存的是值,引用数据类型存的是地址值,但是在创建的时候就会规定存储的类型
B、集合只能存储引用数据类型,但是也可以存储基本数据类型(装箱),在存储基本数据类型时会自动转换为包装类
集合在没有明确的泛型限定之前,默认存储的是Object类的
三、Collection集合的常用方法
java.util包
Collection 是接口,不能实例化对象,使用多态技术创建子类对象,使用父类引用指向子类对象,调用父类方法
基本功能:
- boolean add(Object obj) 添加
- boolean remove(Object obj) 删除 指定的元素
- void clear() 清空
- boolean contains(Object obj) 包含 --------》内部是调用equals()方法
- boolean isEmpty()是空 返回true 非空返回false
- int size() 大小
带All的功能:
- boolean addAll(Collection c) 将传入集合的每一个元素 添加到调用集合中,
--------》add()方法当传入集合时,把添加的集合当做一个元素,添加到调用集合中
- boolean retainAll(Collection c) 取交集 将交集存储到调用集合中 没有交集 调用的集合被清空
--------》 返回值 true false 有何决定?
如果 调用的集合 由于调用而发生改变 则返回true
如果 调用的集合 和传入的集合完全相同(调用的集合没改变) 返回false
- boolean removeAll(Collection c)调用的集合中 删除了 传入的集合的交集,若没有交集,调用的集合被删除
- boolean containsAll(Collection c) 判断调用集合 是否包含 传入集合 包含 返回true 不包含返回false
其他的功能:
- Object[] toArray() 将集合转成数组
- Iterator iterator() 通过方法的调用 获取Iterator迭代器对象
四、遍历集合的方式
方式1:Object[] toArray() 将集合转成数组
普通for 循环 遍历集合 toArray()方法 将集合转成Object[]数组
方式二、增强for循环
格式
for(元素类型 变量名:要遍历的范围){
循环体语句
}
缺点:丢掉了索引,就不能根据索引获取元素了
方式三:Iteraor迭代器
Iterator it=集合.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
*****在迭代的时候不要操作该集合,否则会出现ConcurrentModificationException(多线程异常)