Android面试知识点总结分析(二)Collection接口

18 篇文章 0 订阅

java之Collection接口

Collection是一个java数据集合的接口,继承Iterator迭代器接口,保证子类全部支持迭代功能。分别有Set,List,Queue接口继承它,AbstractCollection实现了Collection接口;

支持的方法

1.int size()
返回当前集合的成员数量;
如果数量大于Integer.MAX_VALUE,则返回Integer.MAX_VALUE;

2.boolean isEmpty()
返回集合是否为空,如果没有成员则返回true

3.boolean contains(Object o)
返回队列是否包含指定元素
当且仅当当前集合包含至少一个指定元素时返回true;
如果和集合内元素类型不同则抛出ClassCastException错误;
如果当前元素为空且该集合不支持空元素时将会抛出NullPointerException空指针异常;

4.Iterator<E> iterator()
返回迭代器;
这其实是迭代器接口中的方法,集合不能为空;

5.Object[] toArray()
返回一个由当前集合组成的object数组

6.<T> T[] toArray(T[] a)
返回一个指定类型的数组;
如果指定类型的数组为空,则抛出NullPointerException空指针异常;

7.boolean add(E e)
增加一个元素到集合中;
如果当前集合中不支持添加这个操作,可以抛出UnsupportedOperationException不支持当前操作的异常;
如果添加的元素和集合中的元素类型不同,可以抛出ClassCastException异常;
如果添加的元素为空且当前集合不支持空元素。可以抛出NullPointerException异常;
如果该元素的某些属性阻止该元素被添加到集合中。可以抛出IllegalArgumentException异常;
如果由于插入限制导致元素没有加入集合中。可以抛出IllegalStateException异常;

8.boolean remove(Object o)
从集合中移除一个元素;
如果当前集合中不支持移除这个操作,可以抛出UnsupportedOperationException不支持当前操作的异常;
如果要移除的元素和集合中的元素类型不同,可以抛出ClassCastException异常;
如果要移除的元素为空且当前集合不支持空元素。可以抛出NullPointerException异常;

9.boolean containsAll(Collection<?> c)
该集合中是否包含另一个子集合;
如果指定的集合的元素和集合中的元素类型不同,可以抛出ClassCastException异常;
如果指定的集合为空。可以抛出NullPointerException异常;

10.boolean addAll(Collection<? extends E> c)
添加一个子集合到当前集合中;
如果当前集合中不支持添加这个操作,可以抛出UnsupportedOperationException不支持当前操作的异常;
如果添加子集合的元素和集合中的元素类型不同,可以抛出ClassCastException异常;
如果添加的子集合为空且当前集合不支持空元素或者空集合。可以抛出NullPointerException异常;
如果子集合的元素的某些属性阻止该元素被添加到集合中。可以抛出IllegalArgumentException异常;
如果由于插入限制导致子集合没有加入集合中。可以抛出IllegalStateException异常;

11.boolean removeAll(Collection<?> c)
从集合中移除一个子集合
如果当前集合中不支持移除子集合这个操作,可以抛出UnsupportedOperationException不支持当前操作的异常;
如果要移除子集合的元素和集合中的元素类型不同,可以抛出ClassCastException异常;
如果要移除子集合的元素为空且当前集合不支持空元素或者空集合。可以抛出NullPointerException异常;

12.default boolean removeIf(Predicate<? super E> filter)JDK since1.8;Android SDK since N(24)
删除符合条件的元素
一般我们会使用迭代器遍历,找到符合条件的然后删除,现在collection帮我们做了这个操作。所以可以直接调用该方法删除我们想要删除的元素!
如果过滤器为空,则可以抛出NullPointerException异常;
如果不支持当前操作可以抛出UnsupportedOperationException不支持当前操作的异常;

13.boolean retainAll(Collection<?> c)
仅保留提供元素列表中的元素,言外之意删除列表之外的元素
如果当前集合中不支持这个操作,可以抛出UnsupportedOperationException不支持当前操作的异常;
如果要保留的子集合的元素和集合中的元素类型不同,可以抛出ClassCastException异常;
如果要保留子集合的元素为空且当前集合不支持空元素或者空集合。可以抛出NullPointerException异常;

14.void clear()
清空集合
将集合中的所有元素移除
如果当前集合中不支持这个操作,可以抛出UnsupportedOperationException不支持当前操作的异常;

15.boolean equals(Object o)
判断是否相等的方法
默认比较hashCode,所以需要同时实现hashCode方法;
用来判断集合间是否相等,也打通了与object之间的判断方法;

Object a = new ArrayList<String>();
List<String> b = (List<String>) a;
System.out.println(b.equals(a));

16.default Spliterator<E> spliterator() { return Spliterators.spliterator(this, 0); }JDK since1.8
返回当前集合的分割器
分割器可以实现遍历操作;
由于Iterator是不支持同步遍历的,所以这个其实是一个支持同步遍历的遍历器,运用了分割治理的方法,避免锁住全部集合,这样多个同步操作可以同时遍历操作集合的不同部分,达到同步的目的;
内部其实是委托由Spliterators.spliterator(this, 0);来实现的,Spliterators是一个像Collections的工具集,具体来说就是负责对各种基本类型和复杂类型的集合进行分割操作的工具集;Spliterators也是JDK since1.8才出现的。

17.default Stream<E> stream() { return StreamSupport.stream(spliterator(), false); }JDK since1.8
返回当前集合的串行流
Steam是一个集合的聚合操作的集合,(具体将会单独讲解@Steam)能够让程序员写出行云流水的代码,更加高效整洁。因为每个操作都会返回流本身,所以操作可以连续进行;

18.default Stream<E> parallelStream() { return StreamSupport.stream(spliterator(), true); }JDK since1.8
返回当前集合的并行流

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值