java 之 Collections.copy()方法

个人觉得学习Java的最好方法还是研究源码,源码面前无密码,今天就让我们来研究一下集合中的copy()方法,

源码解释:
    Copies all of the elements from one list into another.  After the operation, the index of each copied element in the destination list will be identical to its index in the source list.  The destination list must be at least as long as the source list.  If it is longer, the remaining elements in the destination list are unaffected.

意思是: copy()就是把一个列表中的所有元素拷贝到另外一个列表, 在copy操作之后,目的列表中的每个被拷贝的元素索引都要和源列表中的元素索引保持一致,目的列表的长度至少应等于源列表,若目的列表的长度大于源列表,则剩余的元素不受影响。

java 之 Collections.copy()方法_第1张图片

分析:
第一个if:  当源列表的长度大于目的列表的长度时则抛异常,也就是 元素多的列表 copy 到 容量小的列表是不被允许的。
第二个if,择优法,当需要copy的源列表元素个数小于阈值(10)的时候,采用传统的线性添加,
第三个if, 当源列表的元素个数 >10时,采用迭代器遍历添加
从源码上看:copy方法很容易理解,但是牵涉到拷贝我们就要知道 浅拷贝和深拷贝,首先 灌输两个概念
浅拷贝:


你可能感兴趣的:(Java,JDK,源码分析)