JAVA-容器(2)-Collection

(基于JDK1.8源码分析)

一,Collection

  所有实现Collection接口的类原则上应该提供两种构造函数:

  【1】无参构造-创建一个空的容器

  【2】有参构造-创建一个新的Collection,这个新的Collection和传入的Collection具有相同的元素

 

二,源码分析

  

public interface Collection<E> extends Iterable<E> {
/** 集合大小 */int size();/** 是否为空 */boolean isEmpty();/** 是否包含指定元素 */boolean contains(Object o);/** 返回用于遍历集合的迭代器*/Iterator<E> iterator();/** 将集合转为数组*/Object[] toArray();/** 将集合转为指定类型数组*/<T> T[] toArray(T[] a);/** 新增元素 */boolean add(E e);/** 删除元素*/boolean remove(Object o);
    /** 集合中是否包含C集合中的元素*/boolean containsAll(Collection<?> c);/** 新增集合元素*/boolean addAll(Collection<? extends E> c);/** 集合中删除C集合中有的元素*/boolean removeAll(Collection<?> c);/***/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;}/** 集合中只保留C集合中的元素*/boolean retainAll(Collection<?> c);/** 清空集合元素*/void clear(); /** 比较集合元素是否相同*/boolean equals(Object o);/** 计算哈希码*/int hashCode();/***/@Overridedefault Spliterator<E> spliterator() {return Spliterators.spliterator(this, 0);}/***/default Stream<E> stream() {return StreamSupport.stream(spliterator(), false);}/***/default Stream<E> parallelStream() {return StreamSupport.stream(spliterator(), true);}
}

 

转载于:https://www.cnblogs.com/wanhua-wu/p/6652901.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252987.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测试工具LoadRunner中如何定义SLA?--转载

软件测试工具LoadRunner中如何定义SLA&#xff1f; 浏览&#xff1a;2242|更新&#xff1a;2017-04-09 22:50SLA 是您为负载测试场景定义的具体目标。Analysis 将这些目标与软件测试工具LoadRunner在运行过程中收集和存储的性能相关数据进行比较&#xff0c;然后确定目标的 SLA…

最近阅读20171106

java面试题 线上服务内存OOM问题定位三板斧 JVM的GC ROOTS存在于那些地方 mysql innodb怎样做查询优化 ----未阅读 JAVA CAS原理深度分析----未阅读 转载于:https://www.cnblogs.com/Tpf386/p/7793248.html

LinuxI2C驱动--从两个访问eeprom的例子开始

本小节介绍两个在linux应用层访问eeprom的方法&#xff0c;并给出示例代码方便大家理解。第一个方法是通过sysfs文件系统对eeprom进行访问&#xff0c;第二个方法是通过eeprom的设备文件进行访问。这两个方法分别对应了i2c设备驱动的两个不同的实现&#xff0c;在后面的小结会详…

Cookie详解整理

1.Cookie的诞生 由于HTTP协议是无状态的&#xff0c;而服务器端的业务必须是要有状态的。Cookie诞生的最初目的是为了存储web中的状态信息&#xff0c;以方便服务器端使用。比如判断用户是否是第一次访问网站。目前最新的规范是RFC 6265&#xff0c;它是一个由浏览器服务器共同…

骁龙820和KryoCPU:异构计算与定制计算的作用 【转】

本文转载自&#xff1a;https://www.douban.com/group/topic/89037625/ Qualcomm骁龙820处理器专为提供创新用户体验的顶级移动终端而设计。为实现消费者所期望的创新&#xff0c;移动处理器必须满足日益增长的计算需求且降低功耗&#xff0c;同时还要拥有比以往更低的温度&…

LNMP

准备工作 建立一个软件包目录存放 mkdir -p /usr/local/src/ 清理已经安装包 rpm -e httpd rpm -e mysql rpm -e php yum -y remove httpd yum -y remove mysql yum -y remove php #搜索apache包 rpm -qa http* #强制卸载apache包 rpm -e --nodeps 查询出来的文件名 #检查是否卸…

算法复习——计算几何基础(zoj1081)

题目&#xff1a; Statement of the Problem Several drawing applications allow us to draw polygons and almost all of them allow us to fill them with some color. The task of filling a polygon reduces to knowing which points are inside it, so programmers have …

亚马逊Rekognition发布针对人脸检测、分析和识别功能的多项更新

今天亚马逊Rekognition针对人脸检测、分析和识别功能推出了一系列更新。这些更新将为用户带来多项能力的改今&#xff0c;包括从图像中检测出更多人脸、执行更高精度的人脸匹配以及获得图像中的人脸得到更准确的年龄、性别和情感属性。Amazon Rekognition的客户可以从今天开始使…

(转)CentOS分区操作详解

CentOS分区操作详解 原文&#xff1a;http://blog.csdn.net/yonggeit/article/details/77924393 磁盘分区 分区格式的两种选择&#xff1a;MBR和GPT 分区命令&#xff1a; parted的操作都是实时生效的&#xff0c;小心使用&#xff0c;主要是用于大于2T硬盘&#xff0c;支持MBR…

linux驱动中地址空间转换

在linux kernel 中&#xff0c;物理地址是不能直接使用的&#xff0c;必须通过转换才可以。转换分为两种&#xff0c; 静态和动态。 静态就是下面那种&#xff0c;不过&#xff0c;静态的地址转换&#xff0c;还需要在kernel 初始化的时候作映射。 动态映射是使用 ioremap 函…

getClass()和.class的区别

getClass()和.class的区别 在学习反射时想到了这个问题&#xff0c;.getClass()和.class有没有什么区别&#xff1f; 当然&#xff0c;最明显的区别就是.getClass()是一个对象实例的方法&#xff0c;只有对象实例才有这个方法&#xff0c;具体的类是没有的。类的Class类实例是通…

华为敏捷 DevOps 实践:产品经理如何开好敏捷回顾会议

开篇小故事&#xff1a;前几年&#xff0c;一本叫《沉思录》的书在国内突然曝光度很多&#xff0c;因为前某国家领导人“摆案头&#xff0c;读百遍”。《沉思录》是古罗马皇帝马可奥勒写给自己的书&#xff0c;内容大部分是在鞍马劳顿中写的。其实有一句“我们所听到的不过只是…

斐波那契数列的鬼畜的性质

斐波那契数列的鬼畜的性质 斐波那契数列定理1 \(gcd(f[i],f[i1])1\) 利用辗转相减法 证明&#xff1a;\(gcd(f[i],f[i1])\)\(gcd(f[i1]-f[i],f[i])\)\(gcd(f[i-1],f[i])\)\(....\)\(gcd(f[1],f[2])1\) 斐波那契数列定理2 \(f[mn]f[m-1]f[n]f[m]f[n1]\) 证明&#xff1a;\(f[mn]…

xml与java对象转换 -- XStreamAlias

XStreamAlias使用 一、 特点: 简化的API; 无映射文件; 高性能,低内存占用; 整洁的XML; 不需要修改对象;支持内部私有字段,不需要setter/getter方法 提供序列化接口; 自定义转换类型策略; XStream的优点很多&#xff0c;但是也有一些小bug&#xff0c;比如在定义别名中的下划线…

windows下安装zabbix_agent

Server端在linux系统上&#xff0c;server端版本为2.2.6&#xff0c;是以前就装好的已经跑了很久的稳定版。目前的需求是要将新业务的服务器添加到该监控队列。而这些服务器是windows系统。 第一次下载了最新版的zabbix_agent for windows。按照正常程序安装完成后&#xff0c;…

JS和Jquery获取和修改label的值

获取值&#xff1a; label标签在JS和Jquery中使用不能像其他标签一样用value获取它的值&#xff1a; var labeldocument.getElementById("id");var valuelabel.value;var value$("#id").val();可以这样&#xff1a;JS: var labeldocument.getElementById(&…

Linux内核访问外设I/O--动态映射(ioremap)和静态映射(map_desc)

本篇文章主要介绍了"Linux内核访问外设I/O--动态映射(ioremap)和静态映射(map_desc)"&#xff0c;主要涉及到Linux内核访问外设I/O--动态映射(ioremap)和静态映射(map_desc)方面的内容&#xff0c;对于Linux内核访问外设I/O--动态映射(ioremap)和静态映射(map_desc)感…

点击显示隐藏盒子函数

示例&#xff1a;&#xff08;手机导航栏&#xff09; <header> <div class"logo"></div> <p class"text">微蜂传媒</p> <div class"nav_btn" οnclick"showHide(.dropdown_menu)"></div> …

MyBatis 缓存机制

Mybatis 有两级缓存&#xff1a; 一级缓存&#xff1a; 也称为本地缓存&#xff0c;SqlSession级别的缓存。一级缓存是一直开启的&#xff1b; 与数据库同一次会话期间查询到的数据会放在本地缓存中&#xff0c;以后如果需要获取相同的数据&#xff0c;直接从缓存中拿&#xff…