摘要:接口接口作为集合类的父类接口,位于包下,定义了很多集合操作的方法。今天我希望通过对源码的查阅来对接口有所认识,下面我们直接进入源码分析接口源码可以看出,接口继承接口。
Collection接口
Collection接口作为集合类的父类接口,Collectio位于java.util包下,Collectio定义了很多集合操作的方法。今天我希望通过对源码的查阅来对Collection接口有所认识,下面我们直接进入源码分析:
Collection接口源码
可以看出,Collection接口继承Iterable接口。
package java.util; import java.util.function.Predicate; import java.util.stream.Stream; import java.util.stream.StreamSupport; public interface Collectionextends Iterable { /** * @return 用于返回集合中元素的个数(最大个数) */ int size(); /** * @return 用于判断集合中是否存在某个元素,不存在返回true */ boolean isEmpty(); /** * 判断集合中是否存在指定元素,存在返回true * * @param o是用于判断的元素 */ boolean contains(Object o); /** * @return 返回可用于遍历的迭代器 */ Iterator iterator(); /** * @return 将集合转变成数组 */ Object[] toArray(); /** * @return 将指定集合转变成对应的数组 */ T[] toArray(T[] a); /** * @return 往集合中添加元素,添加成功返回true */ boolean add(E e); /** * @return 在集合中删除指定的元素,成功返回true */ boolean remove(Object o); /** * @return 判断集合中是否包含集合C,如果包含返回true */ boolean containsAll(Collection> c); /** * @return 将集合C添加到集合中,添加成功返回true */ boolean addAll(Collection extends E> c); /** * @return 从集合中删除集合C,删除成功返回true */ boolean removeAll(Collection> c); /** * @return 删除集合中复合条件的元素,删除成功返回true * @since 1.8 */ default boolean removeIf(Predicate super E> filter) { Objects.requireNonNull(filter); boolean removed = false; final Iterator each = iterator(); while (each.hasNext()) { if (filter.test(each.next())) { each.remove(); removed = true; } } return removed; } /** * @return 保留集合中集合C中的元素 */ boolean retainAll(Collection> c); /** * 清空集合中的所有元素 */ void clear(); /** * @return 比较O与集合中的元素 */ boolean equals(Object o); /** * @return 返回此集合的哈希码值。 */ int hashCode(); /** * * @return a {@code Spliterator} over the elements in this collection * @since 1.8 */ @Override default Spliterator spliterator() { return Spliterators.spliterator(this, 0); } /** * @return a sequential {@code Stream} over the elements in this collection * @since 1.8 */ default Stream stream() { return StreamSupport.stream(spliterator(), false); } /** * @return a possibly parallel {@code Stream} over the elements in this * collection * @since 1.8 */ default Stream parallelStream() { return StreamSupport.stream(spliterator(), true); } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/69749.html
摘要:集合的种类常见的集合类分如下几个种类详解接口是和接口的父接口,也是集合类除外根接口。接口集合中元素的存放特点是元素有序,同一元素可重复。总结中集合是一个非常重要的知识点,在实际运用中也是常常会使用到。 集合的种类 常见的集合类分如下几个种类: Collection - List - ArrayList - LinkedList - Set - HashSet...
摘要:第一个函数生成一个新的实例第二个函数接受两个参数,第一个是前面生成的对象,二个是中包含的元素,函数体就是把中的元素加入对象中。 感谢同事【天锦】的投稿。投稿请联系 tengfei@ifeve.com 上篇文章[Java8初体验(一)lambda表达式语法]()比较详细的介绍了lambda表达式的方方面面,细心的读者会发现那篇文章的例子中有很多Stream的例子。这些Stream的例子可...
摘要:示例执行一批任务,然后消费执行结果代码如下跟着阿里学并发,微信公众号输出代码中传入了一批任务进行处理,最终将所有处理完成的按任务完成的先后顺序传递给进行消费了。 这是java高并发系列第20篇文章。 本文内容 ExecutorCompletionService出现的背景 介绍CompletionService接口及常用的方法 介绍ExecutorCompletionService类及...
摘要:中的与表达式可以说是相伴相生的,通过我们可以更好的更为流畅更为语义化的操作集合。流是一种惰性操作,所有对源数据的计算只在终止操作被初始化的时候才会执行。然后传入表达式将每个元素转换大写,通过方法将结果收集到中。 上一篇系统学了方法引用的几种类型及应用场景,本篇开始我们正式学习Stream。Java8中的Stream与lambda表达式可以说是相伴相生的,通过Stream我们可以更好的更...
摘要:从使用到原理学习线程池关于线程池的使用,及原理分析分析角度新颖面向切面编程的基本用法基于注解的实现在软件开发中,分散于应用中多出的功能被称为横切关注点如事务安全缓存等。 Java 程序媛手把手教你设计模式中的撩妹神技 -- 上篇 遇一人白首,择一城终老,是多么美好的人生境界,她和他历经风雨慢慢变老,回首走过的点点滴滴,依然清楚的记得当初爱情萌芽的模样…… Java 进阶面试问题列表 -...
阅读 1028·2023-04-26 02:02
阅读 2371·2021-09-26 10:11
阅读 3522·2019-08-30 13:10
阅读 3707·2019-08-29 17:12
阅读 688·2019-08-29 14:20
阅读 2169·2019-08-28 18:19
阅读 2172·2019-08-26 13:52
阅读 933·2019-08-26 13:43