【集合】Collection
一、Collection定义
Collection是一个接口,其在java.util.Collection中定义。
public interface Collection<E> extends Iterable<E>
二、Collection定义的接口
1. 增加元素
(1)指定参数增加1个元素
boolean add(E e);
(2)参数为1个集合,添加集合参数内包含的所有内容
boolean addAll(Collection<? extends E> c);
2. 删除元素
(1)删除指定的单个元素
boolean remove(Object o);
(2)参数为1个集合,删除集合参数内包含的所有元素
boolean removeAll(Collection<?> c);
(3)与removeAll方法相反。参数为1个集合,删除不存在于集合参数内的其他元素
boolean retainAll(Collection<?> c);
(4)根据过滤器删除
boolean removeIf(Predicate<? super E> filter)
(5)清空集合
void clear();
3. 查找元素
(1)参数1个元素,判断指定元素是否在集合中是否存在。返回boolean类型。
boolean contains(Object o);
(2)参数1个集合,判断 参数集合 的内容 在集合中是否存在。返回boolean类型。
boolean containsAll(Collection<?> c);
4. 遍历集合
(1)获取集合的迭代器
Iterator<E> iterator();
5. 集合大小
(1)获取集合大小。如:集合clear()后,其大小是0
int size();
(2)判断集合是否为空,返回boolean类型。
boolean isEmpty();
7. 把集合转换为数组
(1)把集合转化成一个数组副本,返回
注(具体在后续各结合类实现中):
- 如果迭代器能保证特定的顺序,数组就有相同的顺序。
- 得到的数组是个副本,而不是内部数据结构的引用。
Object[] toArray();
(2)把集合中的元素存入参数指定的数组,返回
<T> T[] toArray(T[] a);
【重要!!!!】:
- T[] a参数采用new 长度为0方式,则此方法效果同toArray(),会新分配数组存储空间。
String[] y = x.toArray(new String[0]);
- T[] a参数如果集合的元素足够大,则要存储到参数指定的数组;否则,将为此分配一个相同类型的新数组。
如:如下将list转换为数组时最佳SIZE (A)
List
list.add("1");
list.add("2");
String[] array = list.toArray(new String[SIZE]);
A、0 B、1 C、2 D、3