List系列集合:添加的元素是 有序、可重复、有索引
Set系列集合:添加的元素是 无序、不重复、无索引
Collection
Collection是单列集合的接口,它的功能是全部单列集合都可以继承使用的
public boolean add(E e) 把给定的对象添加到当前集合中
public void clear() 清空集合中所有的元素
public boolean remove(E e) 把给定的对象在当前集合中删除
public boolean contains(bject obj) 判断当前集合中是否包含给定的对象
public boolean isEmpty() 判断当前集合是否为空
public int size() 返回集合中元素的个数/集合的长度
Collection是一个接口,我们不能直接创建他的对象。所以,现在我们学习他的方法时,只能创建他实现类的对象。
下面用多态的方式创建对象,这是为了学习Collection接口里的方法
add:把给定的对象添加到当前集合中
如果我们要往List系列集合中添加数据,那么方法永远返回true,因为List系列的是允许元素重复的。
如果我们要往Set系列集合中添加数据,如果当前要添加元素不存在,方法返回true,表示添加成功。如果当前要添加的元素已经存在,方法返回false,表示添加失败。因为Set系列的集合不允许重复。
clear:清空集合中所有的元素
remove(E e) 把给定的对象在当前集合中删除
因为Collection里面定义的是共性的方法,所以此时不能通过索引进行删除。只能通过元素的对象进行删除。方法会有一个布尔类型的返回值,删除成功返回true,删除失败返回false。如果要删除的元素不存在,就会删除失败。
contains(bject obj) 判断当前集合中是否包含给定的对象
contains底层是依赖equals方法进行判断是否存在的。
所以,如果集合中存储的是自定义对象(例如自己定义的Student类,teacher类),也想通过contains方法来判断是否包含,那么在javabean类中,一定要重写equals方法。
isEmpty() 判断当前集合是否为空
size() 返回集合中元素的个数/集合的长度
Collection遍历方式
迭代器遍历
迭代器在Java中的类是lterator,迭代器是集合专用的遍历方式
Collection集合获取迭代器
Iterator<E> iterator() 返回迭代器对象,默认指向当前集合的0索引
lterator中的常用方法
boolean hasNext() 判断当前位置是否有元素,有元素返回true,没有元素返回false
E next() 获取当前位置的元素,并将迭代器对象移向下一个位置。
迭代器遍历完毕,指针不会复位
如果我们要继续第二次遍历集合,只能再次获取一个新的迭代器对象
增强for遍历
增强for的底层就是迭代器,为了简化迭代器的代码书写的。
它是IDK5之后出现的,其内部原理就是一个iterator迭代器
所有的单列集合和数组才能用增强for进行遍历
for (元素的数据类型 变量名 : 数组或者集合){
}
修改增强for中的变量,不会改变集合中原本的数据。
Lambda表达式遍历
得益于]DK8开始的新技术Lambda表达式,提供了一种更简单、更直接的遍历集合的方式。