从源码深入理解java集合(基于jdk1.7)

前言

      首先不得不感叹写博客真是得需要持久的耐心啊!! 每篇博客都包含着每一位博客人的心血!!

        剛好最近又在找工作,所以博主又打算從寫博客,算是重新复习一下啦!!就从集合开始吧。本系列博客均以jdk1.7版本为准。如果有借鉴的话,博主均会验证其正确性,并且(尽量)标明出处(现在好多博客copy严重)。

        言归正传,直接上图吧(百度图库的,比较精美简要):从源码深入理解java集合(基于jdk1.7)

       有些多,哈哈。万丈高楼平地起!!


Collection

看一下官方API怎么解释的呢?(注意:括号中均为博主私自添加)

      从源码深入理解java集合(基于jdk1.7)

          翻译一下:collection属于(单列)集合体系的根接口相对于map集合),一个集合表示一组对象,这些对象作为集合的元素(而存在)。一些集合允许重复的元素(equals方法判断),而另一些则不允许。有些集合有序(是指插入和取出顺序一致),有些无序。该collection并没有直接的实现类,而是提供多个特殊的子接口:list 和 set。该接口通常是为了传递和操作集合体系的共性。

        方法:

                从源码深入理解java集合(基于jdk1.7)

                 解释:返回集合元素数量(返回int值),如果超出int能表示的最大值,则显示int的最大值。


                从源码深入理解java集合(基于jdk1.7)

                        解释:查看集合是否为空(返回Boolean值)


                 从源码深入理解java集合(基于jdk1.7)

                  解释:查看集合是否包含某个指定对象(返回Boolean值),注意,如果指定元素的类型不受集合支持(泛型)则抛出ClassCastException:类型转换异常; 如果指定元素为null但是该集合又不允许null元素,则抛出NullPointException:空指针异常。


 从源码深入理解java集合(基于jdk1.7)

                   解释:查看集合是否包含某个集合所有对象(返回Boolean值),注意,如果指定元素的类型不受集合支持(泛型)则抛出ClassCastException:类型转换异常; 如果指定元素为null但是该集合又不允许null元素,则抛出NullPointException:空指针异常。

                 

                  从源码深入理解java集合(基于jdk1.7)

                   解释:返回该集合的迭代器(用于集合遍历),该迭代并不保证元素顺序。


                   从源码深入理解java集合(基于jdk1.7)

                     解释:将集合转为数组(元素不变),如果该集合的迭代器遍历元素具有某种顺序保障,则数组的元素也应保障该顺序。


                     从源码深入理解java集合(基于jdk1.7)

                   从源码深入理解java集合(基于jdk1.7)

                     解释:将集合转为指定类型数组,注意,(1)如果指定数组的运行时类型不是集合元素运行时类型的超类(数组泛型与集合元素类型不匹配)则抛出ArrayStoreException:数组存储异常 ; (2)如果指定数组为null,则抛出NullPointException:空指针异常。


   从源码深入理解java集合(基于jdk1.7)      从源码深入理解java集合(基于jdk1.7)

                     解释:添加元素到集合(添加成功返回true,如果集合不允许重复值并且指定值已存在则返回false)。注意,(1)如果集合不支持add操作,则抛出UnsupportedOperationException:不支持操作异常;(2)如果添加的元素类型不符合集合泛型,则抛出ClassCastException (3)如果添加指定元素为null并且该集合不支持null,则抛出NullPointException:空指针异常 ;(4) 如果由于插入限制使插入元素失败,则抛出IllegalStateException:非法语法异常。


 从源码深入理解java集合(基于jdk1.7)从源码深入理解java集合(基于jdk1.7)       

               解释:添加整个集合元素到集合(添加成功返回true,如果集合不允许重复值并且指定值已存在则返回false)。注意,(1)如果集合不支持add操作,则抛出UnsupportedOperationException:不支持操作异常;(2)如果添加的元素类型不符合集合泛型,则抛出ClassCastException (3)如果添加指定元素为null并且该集合不支持null,则抛出NullPointException:空指针异常 ;(4) 如果由于插入限制使插入元素失败,则抛出IllegalStateException:非法语法异常。


从源码深入理解java集合(基于jdk1.7)

                   解释:移除指定元素(移除成功返回true,如果集合不允许重复值并且指定值已存在则返回false)。注意,(1)如果集合不支持remove操作,则抛出UnsupportedOperationException:不支持操作异常;(2)如果移除的元素类型不符合集合泛型,则抛出ClassCastException (3)如果移除指定元素为null并且该集合不支持null,则抛出NullPointException:空指针异常 ;

从源码深入理解java集合(基于jdk1.7)

                       解释:移除指定集合所有元素(移除成功返回true,如果集合不允许重复值并且指定值已存在则返回false)。注意,(1)如果集合不支持remove操作,则抛出UnsupportedOperationException:不支持操作异常;(2)如果移除的元素类型不符合集合泛型,则抛出ClassCastException (3)如果指定集合包含一个或多个元素为null并且该集合不支持null,则抛出NullPointException:空指针异常 ;


从源码深入理解java集合(基于jdk1.7)

                   解释:保留两集合的公共元素(原集合发生改变返回true)。注意,(1)如果集合不支持remove操作,则抛出UnsupportedOperationException:不支持操作异常;(2)如果移除的元素类型不符合集合泛型,则抛出ClassCastException (3)如果指定集合包含一个或多个元素为null并且该集合不支持null,则抛出NullPointException:空指针异常 ;

                 

                     从源码深入理解java集合(基于jdk1.7)

                解释:合包含一个或多个元素为null合包含一个或多个元素为null清空集合所有元素


                 从源码深入理解java集合(基于jdk1.7)

                   从源码深入理解java集合(基于jdk1.7)