Collection

1. 介绍

该类是所有集合的子类

2. 继承关系

3. 方法

4. JDK8新增的方法

removeIf(Predicate<? super E> filter)

使用lambda方式移除元素

       default boolean removeIf(Predicate<? super E> filter) {
//校验lambda是否为空
Objects.requireNonNull(filter);
boolean removed = false;
//获取迭代器
final Iterator<E> each = iterator();
//循环判断
while (each.hasNext()) {
//如果该方法执行返回true则移除该元素
if (filter.test(each.next())) {
each.remove();
removed = true;
}
}
//返回是否成功移除
return removed;
}

Spliterator<E> spliterator()

返回并发分割器,用于并发流式处理的时候调用

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

Stream<E> stream()

返回流对象

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

Stream<E> parallelStream()

返回并发流式对象

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

5. 总结

  1. 在Collection中定义了一些常用的接口,供子类去实现
  2. 在JDK1.8中新增了一些方法,例如获取获取流式函数的方法
  3. 在这个接口中引入了default方法

集合源码分析[1]-Collection 源码分析的更多相关文章

  1. Java集合框架之接口Collection源码分析

    本文我们主要学习Java集合框架的根接口Collection,通过本文我们可以进一步了解Collection的属性及提供的方法.在介绍Collection接口之前我们不得不先学习一下Iterable, ...

  2. 集合源码分析[3]-ArrayList 源码分析

    历史文章: Collection 源码分析 AbstractList 源码分析 介绍 ArrayList是一个数组队列,相当于动态数组,与Java的数组对比,他的容量可以动态改变. 继承关系 Arra ...

  3. Java集合基于JDK1.8的ArrayList源码分析

    本篇分析ArrayList的源码,在分析之前先跟大家谈一谈数组.数组可能是我们最早接触到的数据结构之一,它是在内存中划分出一块连续的地址空间用来进行元素的存储,由于它直接操作内存,所以数组的性能要比集 ...

  4. Java集合基于JDK1.8的LinkedList源码分析

    上篇我们分析了ArrayList的底层实现,知道了ArrayList底层是基于数组实现的,因此具有查找修改快而插入删除慢的特点.本篇介绍的LinkedList是List接口的另一种实现,它的底层是基于 ...

  5. Java集合【6.1】-- Collection接口源码详解

    目录 一.Collection接口简介 二.Collection源码分析 三.Collection的子类以及子类的实现 3.1 List extend Collection 3.2 Set exten ...

  6. Linq集合操作之Intersect,Except,Union源码分析

    Linq集合操作之Intersect,Except,Union源码分析 linq的集合运算 常见的集合运算有哪些? 这三个扩展方法在我们实际使用中用的还是非常多的,而且这里还涉及到了“复杂度” 无算法 ...

  7. Java 集合系列 09 HashMap详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  8. Java 集合系列 10 Hashtable详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  9. Java 集合系列 06 Stack详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

随机推荐

  1. Linux系统上安装MySQL(rpm)

    1.准备工作 从MySQL官网上分别下载mysql服务器端于客户端包. 如: MySQL-server-5.5.15-1.linux2.6.x86_64.rpm和MySQL-client-5.5.15 ...

  2. linux下nginx【反向代理】配置【负载均衡】配置

    nginx 可以配置多个端口: 1.10088端口 配置反向代理,消除跨域问题. 2.10087端口 配置ip_hash模式的负载均衡,ip_hash可以绕开解决session共享的问题. nginx ...

  3. 携程Apollo一键编译脚本+部署实现

    系统编译安装 ubuntu16.11 java 1.8 系统规划 Portal共用 其它环境每个两台机器 mysql都做主从,所以每个环境的机器上都会安装admin 服务,config服务,以及一个m ...

  4. Java学习点滴——初识Java

    基于<Java编程思想>第四版 前言 "程序就是算法加数据结构",而算法就是控制语句加操作符,编写一个程序就是使用控制语句加操作符去操作数据结构,因此我从Java的控制 ...

  5. nginx系列8:反向代理和负载均衡原理

    反向代理是nginx的一个非常重要的功能. 反向代理 nginx支持四层反向代理和七层反向代理,如下图. 负载均衡 负载均衡是实现服务高性能和高可用的重要手段,而nginx是实现负载均衡的重要工具.

  6. Android MVP

    大家先看看目录结构 先看V层 View里面我写了一个接口LoginView 然后,在登录这个Activity 去实现这个接口,并实现其抽象方法.即看LoginActivity onCreate中引用了 ...

  7. 深入理解Git的实现原理

      0.导读   本文适合对git有过接触,但知其然不知其所以然的小伙伴,也适合想要学习git的初学者,通过这篇文章,能让大家对git有豁然开朗的感觉.在写作过程中,我力求通俗易懂,深入浅出,不堆砌概 ...

  8. git常用命令总结--廖雪峰老师Git教程命令总结

    学习了廖雪峰老师的Git教程之后的命令总结,重点关于git和远程仓库的东西. 如果没有学过,这是传送门 下面这个图很重要 一.git初始化本地仓库和配置 echo "想输入到文件的内容,一般 ...

  9. PowerShell 官方下载地址

    PowerShell 官方下载地址 Powershell 目前在 GitHub 维护, 所以下载地址为 https://github.com/PowerShell/PowerShell/release ...

  10. Gitlab管理网页老是500错误?增加物理内存,增加cpu吧

    上一篇 CentOS 7 系统下 GitLab 搭建 搭建时,是用的是1G内存, 访问gitlab管理网页非常慢,常常出现 500错误 查询后发现: Gitlab的运行对CPU是有要求的:2核心 支持 ...