目录
1.向集合中添加单个数据:
boolean add(E e)
添加成功返回true,添加失败返回false
注意:集合中数据添加的数据类型需要和集合类型一样
//其中Fruit就是集合类型,而添加的数据类型就只能是Fruit类型的对象或者它的子类对象,其他类型都无法存储
List<Fruit> fruits= new ArrayList<>();
例子:
结果:
2.向集合中添加批量数据:
boolean addAll(Collection<? extends E> c)
添加成功返回true,添加失败返回false
注意:添加的数据是另外一个集合
例子:
结果:
3.集合是如何删除数据的?
集合数据删除的方法有5种:
(1).删除单个数据
remove(Object)
(2).删除批量数据
removeAll(Collection<?>)
(3).保留批量数据
retainAll(Collection<?> c)
(4).删除符合条件的数据
removeIf(Predicate<? super E>)
(5).删除所有数据
clear()
4.删除单个数据
remove(Object)方法
//只需要传入1个参数,就是所要删除的数据,删除成功返回true,删除失败返回false
boolean remove(Object o)
例子:
结果:
集合中有3,删除成功返回true,集合中没有6,删除失败返回fasle
remove(Object)方法的源码:
通过查看源码可知:
1.数据通过迭代器Iterator<E> it= iterator();来删除
2.它根据要删除的数据是否为null
(1)删除数据为null时,遍历集合,当数据为null,匹配将数据删除,注意:每次remove方法调用一次只能删除一个数据
(2)删除的不为null,遍历集合,匹配到对应数据,则将数据删除
5.批量删除数据
(1)removeAll(Collection<?>)
作用:删除在指定集合中也有的数据
//它只有一行参数:指定要删除的集合,只要有一个匹配成功,方法就会返回true,否则就会返回false
boolean removeAll(Collection<?> c)
removeAll删除原理:
遍历被删除的集合,依次检查迭代器返回的每个数据,以查看它是否包含在指定集合中,如果被包含其内,则使用迭代器的remove方法,将其在集合中删除
例子:
结果:
(2)retainAll(Collection<?> c)
作用:保留在指定集合中也有的数据
//只有一个参数,指定要保留的数据集合,只有有一个匹配成功,方法就会返回true,否则返回false
boolean retainAll(Collection<?> c)
retainAll保留原理
和removeAll的原理相反,有就保留,没有就删除
例子:
结果:
(3)removeIf(Predicate<? super E>)
作用:按照指定规则删除数据
// filter指定删除规则,只要有一个删除成功,就会返回true,否则返回false
boolean removeIf(Predicate<? super E> filter)
removeIf删除原理
遍历集合,依次检查迭代器返回的每个数据,以查看它是否满足规则,如果它满足规则,则使用remove方法将它从这个集合中删除
例子:
结果:
(4)clear()
作用:清空集合
clear()原理
遍历集合,依次调用迭代器的remove方法,删除集合中每一个数据
例子:
结果: