频道栏目
首页 > 资讯 > Java > 正文

JAVA中复制数组的五种方法

17-06-30        来源:[db:作者]  
收藏   我要投稿

“=”相当于将一个数组变量的引用传递给另一个数组;如果一个数组发生改变,那么引用同一数组的变量也要发生改变. 使用FOR循环,将数组的每个元素复制或者复制指定元素,不过效率差一点 使用clone方法,得到数组的值,而不是引用,不能复制指定元素,灵活性差一点 使用System.arraycopy(src, srcPos, dest, destPos, length)方法,推荐使用,效率最高 copyOf(),,不是System的方法,而是Arrays的方法,下面是源码,可以看到本质上是调用的arraycopy方法。,那么其效率必然是比不上arraycopy的.

//System.arraycopy
public class Arraycopy {

    /**
     * System.arraycopy(src,srcPos,dest,destPos,length);
     * src :源数组          srcPos:源数组要复制的起始位置; 
     * dest:目的数组   destPos:目的数组放置的起始位置; 
     * length:复制的长度.
     */
    public static void main(String[] args) {
        int[] src={1,3,5,6,7,8}; 
        int[] dest = new int[5]; 
        System.arraycopy(src, 1, dest, 0, 5);

        for (int i = 0; i < dest.length; i++) {
            System.out.print(dest[i]);
        }
    }
}
    //输出的结果是:35678
 //copyOf()源码
public static int[] copyOf(int[] original, int newLength) {
   int[] copy = new int[newLength];
   System.arraycopy(original, 0, copy, 0,
   Math.min(original.length, newLength));
   return copy;
}
//使用clone 
int[] src={1,3,5,6,7,8}; 
int[] dest; 
dest=(int[]) src.clone();//使用clone创建副本,注意clone要使用强制转换
相关TAG标签
上一篇:selenium 通过class 定位失败可能的原因
下一篇:Java内存区域与内存溢出异常
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站