jdk源码阅读Collection详解
作者:nomico271 发布时间:2022-07-25 08:57:40
标签:jdk,源码,collection
见过一句夸张的话,叫做“没有阅读过jdk源码的人不算学过java”。从今天起开始精读源码。而适合精读的源码无非就是java.io,.util和.lang包下的类。
面试题中对于集合的考察还是比较多的,所以我就先从集合的源码开始看起。
(一)首先是Collection接口。
Collection是所有collection类的根接口;Collection继承了Iterable,即所有的Collection中的类都能使用foreach方法。
/**
* Collection是所有collection类的根接口;
* Collection继承了Iterable,即所有的Collection中的类都能使用foreach方法。
* @author WGS
* @param <E>
*/
public interface Collection<E> extends Iterable<E> {
//返回集合中元素的大小。(如果此大小值超过Integer.MAX_VALUE,就直接返回Integer.MAX_VALUE)
int size();
//判断集合是否为空
Boolean isEmpty();
//判断集合是否包含元素o(注意元素e是否为null及类型是否兼容问题)
Boolean contains(Object o);
//返回集合中元素的迭代器(顺序不能保证,除非集合指定了顺序)
Iterator<E> iterator();
//以数组的形式返回集合中的所有元素,数组是安全
Object[] toArray();
//以数组形式返回指定数组类型的集合元素
<T> T[] toArray(T[] a);
//此方法可用来判断集合中是否含有元素e;是-false,否-true(在set,map中会经常调用这个方法,在编程题时很有用)
Boolean add(E e);
//从集合中移除指定的元素
Boolean remove(Object o);
//用来判断是否含有指定集合中的所以元素
Boolean containsAll(Collection<?> c);
//将指定集合中的所有元素添加至调用者的集合中
Boolean addAll(Collection<? extends E> c);
//移除与指定集合相同的元素(即移除两集合交集部分)
Boolean removeAll(Collection<?> c);
//保留与指定集合中相同的元素(即移除与指定集合不同的元素)
Boolean retainAll(Collection<?> c);
//清空集合
void clear();
//判断与指定元素是否相等
Boolean equals(Object o);
//返回集合的哈希码值
int hashCode();
}
来源:http://blog.csdn.net/noaman_wgs/article/details/53024514


猜你喜欢
- 故障:收到服务器报警,内存使用率超过80%1.查看使用dstat和top查看内存使用最高的应用使用dstat查到内存占用最高的是java应用
- 本文分为俩部分:第一部分介绍如何给Eclipse安装Spring Boot开发插件spring tool suite(简称STS);第二部分
- 可以使用System.ServiceProcess.ServiceController这个类允许连接到正在运行或者已停止的服务、对其进行操作
- ArrayBlockingQueue介绍ArrayBlockingQueue是数组实现的线程安全的有界的阻塞队列。线程安全是指,ArrayB
- java 设计模式之单例模式前言:在软件开发过程中常会有一些对象我们只需要一个,如:线程池(threadpool)、缓存(cac
- 在上一讲中 OkHttp下载文件并带进度条 中,我们知道怎样去下载文件了。那上传文件呢一、编写服务器端在上一讲服务器下新建UploadFil
- 定义Java修饰符:修饰符用来定义类、方法或者变量,通常放在语句的最前端。分类主要分为2类:访问控制修饰符非访问控制修饰符访问控制修饰符可以
- 一、项目要求实现一个通讯录通讯录可以用来存储100个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:添加联系人信息删除指定
- Java内存区域与内存溢出异常概述对于 C 和 C++程序开发的开发人员来说,在内存管理领域,程序员对内存拥有绝对的使用权,但是也要主要到正
- 本文实例讲述了C#实现的阴历阳历互相转化类。分享给大家供大家参考,具体如下:最近郁闷地发现网上现有的相当一部分万年历上干支纪年的算法都是错误
- Android的遮罩效果就是把一张图片盖在另一张图片的上面,通过控制任意一张图片的显示百分比实现遮罩效果。下面我使用两张一样的图片来实现一个
- 在处理大文件时,如果利用普通的FileInputStream 或者FileOutputStream 抑或RandomAccessFile 来
- java 抽象类的实例详解前言:什么是抽象类?这名字听着就挺抽象的,第一次听到这个名字还真有可能被唬住。但是,就像老人家所说的,一切反动派都
- Class:EcanRMB.cs using System; using System.Collections.Gen
- 1.wait()方法和sleep()方法:wait()方法在等待中释放锁;sleep()在等待的时候不会释放锁,抱着锁睡眠。2.notify
- 最近因为项目的国际化的需要,需要对整个项目的100来个插件做国际化,这是一件痛苦的事情,因为纯体力劳动。为了省点工作量,想着能不能写个程序批
- 第9版《Java核心技术卷Ⅰ》的第607页介绍了一个方法:Collections类中的sort方法可以对实现了List接口的集合进行排序。这
- 详解json string转换为java bean及实例代码pom中添加如下两个库:<dependency> <
- 引言 在一些项目中或是一些特殊的业务场景中,需要用到显示系统的当前时间,以及一些
- Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户