11.2 集合框架(Collections Framework)
目录
11.2 集合框架(Collections Framework)
11.2.1 引入
应用场景:编写面向对象的程序时,经常要用到一组类型相同的对象,可以使用数组来集中存放这些类型相同的对象,注意数组一经定义后将无法改变大小,因此Java提供了一个集合框架定义了一组接口和类,使得处理对象更为容易
定义:集合是指集中存放一组对象的一个对象,可以将集合看作是能够操作这些元素的容器,包括了保存、获取和操作其他元素的方法。
11.2.1 集合框架的分类
集合框架分为两种类型:
1.Collection:该对象存放一组对象
2.Map:该对象存放一组“关键字/值”的对象
Collection和Map是最基本的接口,它们又有子接口,这些接口的层次关系如图11-1所示
图11-1 集合框架的接口继承关系(包画不直的!)
集合都是泛型类型,而Collection<E>接口是所有集合类型的根接口,继承了Iterable<E>,它有三个子接口:Set接口、List接口、Queue接口
1.基本操作
实现基本操作的方法有:添加元素、删除指定元素、返回集合中元素的个数、返回集合的迭代器对象
boolean add(E e):向集合中添加元素e
boolean remove(Object o):从集合中删除指定元素o
boolean contains(Object o):返回集合中是否包含指定的元素o
boolean isEmpty():返回集合是否为空,返回是否包含元素
int size():返回集合中包含的元素个数
Iterator iterator():返回包含所有元素的迭代器对象
default void forEach(Conumser<? super T>) //?包含T或者T的父类型(泛型的有界类型参数):迭代器对象从父接口继承的方法,在集合的每个元素上执行指定的操作
2.批量操作
boolean addAll(Collection <? extends E> c):将集合c中的所有元素添加到当前的集合中
boolean removeAll(Collection<?> c):从当前集合中删除c中的所有元素
boolean containsAll(Collection<?> c):返回当前集合是否包含c中的所有元素
boolean retainAll(Collection<?> c):在当前集合中只保留指定集合c中的元素,其他元素删除
void clear():将集合清空
3.数组操作
下面方法可以将集合元素转换为数组元素
Object[] toArray():返回包含集合中所有元素的对象数组
<T> T[] toArray(T[] a):返回包含集合中所有元素的数组,返回数组的元素类型是指定的数组类型
设c是一个Collection对象,下面的代码将c中的对象转换成一个新的Object数组,数组的长度与集合c中元素个数相同
Object [] a = c.toArray();
假设知道c中只包含String对象,可用下面的代码将其转换成String数组,它的长度与c中的元素个数相同
String [] a=c.toArray(new String[0]);
//此处的new String[0]就是起一个模板的作用,指定了返回数组的类型,0是为了节省空间,因为它只是为了说明返回的类型
---------------------
作者:defineshan
来源:CSDN
原文:https://blog.csdn.net/defineshan/article/details/52763637
版权声明:本文为博主原创文章,转载请附上博文链接!
4.流(Stream)操作
stream API是Java 8新增的功能,可以称它为流API。可以在集合上创建一个Stream对象,然后在其上执行有关操作。
public default Stream<E> stream():以当前集合作为源返回一个顺序Stream对象
public default Stream<E> paralellstream():以当前集合作为源返回一个并行Stream对象