Collection

集合起源——Collection接口

集合层次结构中的根接口。集合表示一组对象,称为其元素。

实现了什么接口?

Iterable接口,该接口指明实现类有迭代器功能,迭代器包含四个方法

1、next()

让迭代器跳过一个元素

2、hasNext()

判断迭代器后边还有没有元素

3、remove()

删除迭代器跳过的元素,没有跳过元素时调用会抛出IllegalStateException

4、forEachRemaining(Consumer<? super E> action (jdk1.8)

本质是 while(iterator.hasNext()){iterator.next()} 操作,参数里使用lambda表达式对元素进行操作

该接口实现的方法

1、Iterator iterator();

返回指向集合头元素之前的迭代器,不保证返回元素的顺序,顺序访问取决于集合结构是否保证元素的存储顺序

2、spliterator() (1.8)

default Spliterator<E> spliterator() {
    return Spliterators.spliterator(this, 0);
}

包含了什么方法?

1、int size()

返回集合内元素的数量

2、boolean isEmpty()

判断集合内是否含有元素

3、boolean contains(Object o);

判断集合内是否至少包含一个元素o,元素是否为o的判断方法为如果o为null使用==判断,如果o不为null,使用equals()判断。

建议实现类可能抛出的异常:

ClasscastException 元素o和集合内的元素类型不一致

NullpointerException元素o为null但集合不支持存储null

4、Object[] toArray();

返回一个Object数组,数组元素为集合内的元素

5、 T[] toArray(T[] a);

将集合内的元素填充到数组a,如果数组a的大小比集合内元素个数多,则以null填充数组a多余的元素,返回的数组和数组a为同一个数组,如果数组a的大小比集合内元素个数少,则以null填充数组a,返回一个新数组,新数组包含集合内所有的元素。

建议实现类可能抛出的异常:

ArrayStoreException 填充的数组类型不是集合存储元素的类型或者其父类

NullPointerException 填充的数组为null

6、boolean add(E e);

向集合中添加元素e,返回是否添加成功,除了因为集合内已经包含此元素而返回false,其他原因必须抛出异常。

建议实现类可能抛出的异常:

UnsupportedOperationException 集合不支持add操作

ClassCastException

NullPointerException 元素e为null且集合不支持存储null

IllegalArgumentException

IllegalStateException

7、boolean remove(Object o);

从集合中删除单个元素o,返回是否删除成功,元素是否为o的判断方法为如果o为null使用==判断,如果o不为null,使用equals()判断。

建议实现类可能抛出的异常:

ClassCastException

NullPointerException 当o为null且集合不允许存储null

UnsupportedOperationException 集合不支持remove操作

8、boolean containsAll(Collection<?> c);

如果本集合包含集合c的所有元素则返回true,否则返回false

建议实现类可能抛出的异常:

ClassCastException

NullPointerException 当c内的元素有一个或多个为null且集合不允许存储null

9、boolean addAll(Collection<? extends E> c);

向本集合中添加集合c中的所有元素,返回是否添加成功

建议实现类可能抛出的异常:

UnsupportedOperationException 集合不支持此操作

ClassCastException

NullPointerException 当c内的元素有一个或多个为null且集合不允许存储null

IllegalArgumentException

IllegalStateException

10、boolean removeAll(Collection<?> c);

删除本集合中包含的所有c集合中的元素,返回是否删除成功

建议实现类可能抛出的异常:

UnsupportedOperationException 集合不支持此操作

ClassCastException

NullPointerException 当c内的元素有一个或多个为null且集合不允许存储null

11、removeIf (1.8)

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;
}

删除此集合中满足给定谓词的所有元素。在迭代期间抛出的错误或运行时异常或谓词被传递给调用者。

默认实现使用其iterator遍历集合的所有元素。使用remove()删除每个匹配元素。
如果集合的迭代器不支持删除,则会在第一个匹配元素上抛出UnsupportedOperationException。

可能抛出的异常:

NullPointerException filter为空

UnsupportedOperationException 集合不支持remove

12、boolean retainAll(Collection<?> c);

从此集合中删除不包含在指定集合中的所有元素。如果对集合进行了操作则返回true

建议实现类可能抛出的异常:

ClassCastException

NullPointerException 如果自身集合内有null但是集合c不允许存放null会抛出

13、void clear();

从此集合中删除所有元素

建议实现类可能抛出的异常:

UnsupportedOperationException 集合不支持clear操作

14、stream() (1.8)

default Stream<E> stream() {
    return StreamSupport.stream(spliterator(), false);
}

15、parallelStream() (1.8)

default Stream<E> parallelStream() {
    return StreamSupport.stream(spliterator(), true);
}

关于stream和spliterator之后再填充吧~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值