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
投稿

猜你喜欢

  • 教你3分钟了解Android 简易时间轴的实现方法

    2023-04-02 20:56:19
  • Spring源码解析之事务传播特性

    2021-08-14 16:49:39
  • Mybatis-Plus 多表联查分页的实现代码

    2023-11-25 04:59:07
  • rxjava+retrofit实现多图上传实例代码

    2022-06-16 18:55:33
  • C#实现的海盗分金算法实例

    2023-12-20 21:00:53
  • Android底部菜单栏(RadioGroup+Fragment)美化

    2023-01-06 05:09:56
  • 深入理解JAVA基础类库中对象Object类

    2023-07-26 12:24:10
  • C#验证控件validator的简单使用

    2023-04-26 06:05:31
  • Java控制台输入数组并逆序输出的方法实例 <font color=red>原创</font>

    2023-07-13 23:32:26
  • Java中Thread类详解及常用的方法

    2022-09-29 11:35:44
  • java设计模式之中介者模式

    2022-12-08 09:31:25
  • C#关键字async/await用法

    2022-04-19 03:38:13
  • 详解SpringBoot Start组件开发之记录接口日志信息

    2023-07-26 18:33:34
  • C#编写发送邮件组件

    2022-08-26 19:28:57
  • Android判断用户2G/3G/4G移动数据网络

    2022-12-13 03:21:49
  • C# 多线程读取注册表,加载至TreeView

    2023-04-08 14:52:27
  • Java深入讲解instanceof关键字的使用

    2023-02-27 13:05:05
  • android水平循环滚动控件使用详解

    2023-07-24 15:25:34
  • 解决mybatis一对多查询resultMap只返回了一条记录问题

    2022-07-08 08:36:31
  • Java实现考试系统

    2023-11-18 04:15:03
  • asp之家 软件编程 m.aspxhome.com