Collection是一个接口
它的下面有两个子接口分别为List和Set
List又分为ArrayList、LinkList和Vector
Set又分为HashSet和treeSet
Collection作为集合的一个跟接口,定义了一组对象和它的子类需要的15个方法:
对集合的基础操作:
int size()
获取元素个数
boolean isEmpty()
元素个数是否为零,是则返回true
boolean add(E element)
添加元素,成功后返回true
boolean contains(Object element)
是否包含指定元素,包含则返回true
boolean remove(Object element)
删除元素,成功后返回true
Iterator<E> iterator()
获取迭代器
从Object中继承下来的方法:
boolean equals(Object element)
判断两个集合的内容是否相同,相同返回true。需要Override。
int hashCode()
返回hashcode值。需要Override。
一些操作整个集合的方法:
boolean containsAll(Collection<?> c)
是否包含指定集合c的全部元素,是则返回true
boolean addAll(Collection<?> c)
添加集合c中的所以元素到该集合中,若该集合内元素有改变就返回true
boolean removeAll(Collection<?> c)
删除该集合中和c集合中相同的元素,若该集合内元素有改变就返回true
boolean retainAll(Collection<?> c)
保留该集合中和c集合中相同的元素,如果成功就返回true
void clear()
删除该集合中所有元素
对数组操作的方法:
Object[] toArray()
返回一个包含集合中所有元素的数组
<T> T[] toArray(T[] a)
返回一个包含集合中所有元素的数组,运行时根据集合元素的类型指定数组的类型
从集合中获取连续或者并行流:
Stream<E> stream()
Stream<E> parallelStream()
遍历Collection的几种方法:
for-each
Collection<Person> persons = new ArrayList<Person>();
for (Person person : persons) {
System.out.println(person.name);
}
Iterator
Collection<Person> persons = new ArrayList<Person>();
Iterator iterator = persons.iterator();
while (iterator.hasNext) {
System.out.println(iterator.next);
}
aggregate operations
Collection<Person> persons = new ArrayList<Person>();
persons
.stream()
.forEach(new Consumer<Person>() {
@Override
public void accept(Person person) {
System.out.println(person.name);
}
});