jdk源码阅读Collection详解

作者:nomico271 时间:2022-07-25 08:57:40 

见过一句夸张的话,叫做“没有阅读过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

标签:jdk,源码,collection
0
投稿

猜你喜欢

  • Spring Boot 读取静态资源文件的方法

    2023-08-25 02:53:07
  • Java 归并排序算法、堆排序算法实例详解

    2023-11-25 09:43:25
  • Java实现将每日新闻添加到自己博客中

    2023-02-08 16:20:43
  • Java SpringBoot实现AOP

    2023-05-31 05:49:30
  • Java后台线程操作示例【守护线程】

    2023-11-25 01:35:44
  • Java fastdfs客户端实现上传下载文件

    2023-11-26 09:45:41
  • 深入讲解Java Maven配置

    2022-07-01 05:09:21
  • Nacos 动态服务发现、配置和服务管理平台初体验

    2022-09-10 23:56:53
  • Spring依赖注入的三种方式小结

    2022-08-09 15:56:41
  • springcloud-gateway整合jwt+jcasbin实现权限控制的详细过程

    2023-11-20 12:57:09
  • Java中StringUtils工具类进行String为空的判断解析

    2022-10-16 06:56:53
  • SpringBoot自动配置原理详解

    2023-08-19 09:25:55
  • Springboot与vue实现文件导入方法具体介绍

    2023-10-31 12:31:37
  • Spring源码解析之编程式事务

    2023-06-20 19:17:49
  • SpringBoot如何集成PageHelper分页功能

    2022-10-22 03:18:34
  • Java8中对于LocalDateTime的序列化和反序列化问题

    2023-11-14 15:37:41
  • Java将String字符串带括号转成List的简单方法

    2022-10-26 18:20:17
  • Java concurrency线程池之线程池原理(二)_动力节点Java学院整理

    2023-11-28 23:43:18
  • 简单阐述一下Java集合的概要

    2023-08-23 19:49:45
  • Java面向对象基础知识之委托和lambda

    2022-07-28 16:51:11
  • asp之家 软件编程 m.aspxhome.com