Collection Framework成员如下
- Collection
- Set
- List
- Map
- SortedSet
- SortedMap
- HashSet
- TreeSet
- ArrayList
- LinkedList
- Vector
- Collections
- Arrays
- AbstractCollection
public interface Collection<E> extends Iterable<E> {
// 查询操作
/**
* 返回集合中的元素个数。如果集合中元素的个数超过Integer.MAX_VALUE
* 个,则返回Integer.MAX_VALUE
*/
int size();
/**
* 判断集合是否包含元素
*/
boolean isEmpty();
/**
* 判断集合是否包含指定的值
*/
boolean contains(Object o);
/**
* 返回集合中元素的迭代器。不保证元素的顺序(除非这个集合提供了这个保证)
*/
Iterator<E> iterator();
/**
* 返回包含集合元素的数组。如果集合本身有顺序保证,那么数组也会
* 处于同样的顺序。
* 返回的数组处于“安全”状态,因为原来的集合中没有对它维护任何应用。
* 换句话说,这个方法必须分配一个新的数组,即使这个集合是由一个数组
* 来进行存储的。
*/
Object[] toArray();
/*
* String[] y = x.toArray(new String[0]);</pre>
* toArray(new Object[0])和toArray()功能相同
*/
<T> T[] toArray(T[] a);
// 修改操作
/**
* 确保集合包含指定的元素(可选操作)。
* 如果返回ture,意味着调用后集合发生了改变
* 如果返回false,意味着集合不允许重复并且已经包含了已指定的值。
*
* 集合通过支持这种操作为添加元素增加一些限制。
* 某些集合不允许添加null值,还有一些对添加的数据类型有要求。
*/
boolean add(E e);
/**
* 如果指定的元素在集合中存在,则从集合中删除该元素。
*/
boolean remove(Object o);
// 批量操作
/**
* 如果集合包含指定的集合中的所有元素,则返回true
*/
boolean containsAll(Collection<?> c);
/**
* 将指定的集合中的所有的元素添加进当前集合
*/
boolean addAll(Collection<? extends E> c);
/**
* 删除集合中与指定集合相同的元素。
*/
boolean removeAll(Collection<?> c);
/**
* 删除满足传入的函数表达式的集合中的元素
*/
default boolean removeIf(Predicate<? super E> filter) {
Objects.requireNonNull(filter);
boolean removed = false;
final Iterator<E> each = iterator();
while (each.hasNext()) {
if (filter.test(each.next())) {
each.remove();
removed = true;
}
}
return removed;
}
/**
* 删除指定集合和该集合没有交集的元素
*/
boolean retainAll(Collection<?> c);
/**
* 删除集合中所有的元素
*/
void clear();
// Comparison and hashing
/**
* 指定集合与该集合做比较是否相等
* list与set是不相等的
*/
boolean equals(Object o);
/**
* 返回集合的hashcode
*/
int hashCode();
/**
* 多线程并行的迭代器
*/
@Override
default Spliterator<E> spliterator() {
return Spliterators.spliterator(this, 0);
}
/**
*
*/
default Stream<E> stream() {
return StreamSupport.stream(spliterator(), false);
}
/**
* 并行的stream
*/
default Stream<E> parallelStream() {
return StreamSupport.stream(spliterator(), true);
}
}