java数组拷贝的方法

//数组拷贝的方法:System.arraycopy() 
/*

查看源代码文件中的System类的arraycopy方法:
这是我的安装目录:D:\OpenSourceSoftware\Java\jdk1.7.0_80\src\java\lang\System.java

System.java文件中的arraycopy方法代码如下:
public static native void arraycopy(Object src,  int  srcPos,
                                        Object dest, int destPos,
                                        int length);

看看参数
Object:java语言中的根类,是老祖宗类,顶级父类,所有类都是他衍生出来的,Object可以表示任意数据类型
关于native修饰符:
有没有注意到该方法是没有方法体的,该方法使用了native修饰符(也称为本地方法),意思就是
该方法的底层使用了C/C++语言实现了,那么java直接调用其他语言编写好的功能

参数说明:
Object src : 原数组
   int srcPos : 从元数据的起始位置开始
  Object dest : 目标数组
  int destPos : 目标数组的开始起始位置
  int length  : 要copy的数组的长度

查阅API文档(java的帮助文档)
*/
class ArrayCopyDemo 
{
    public static void main(String[] args) 
    {
        byte[]    srcBytes = new byte[]{2,4,0,0,0,0,0,10,15,50};
        byte[]    destBytes = new byte[5]; 
        printArray(destBytes);
        System.arraycopy(srcBytes,0,destBytes,0,4);
        printArray(destBytes);
    }

static void printArray(byte[] arr)
    {
        String ret = "[";
        for (int i=0; i<arr.length; i++)
        {
            ret = ret + arr[i];
            if (i != arr.length -1)
            {
                ret = ret + ", ";
            }
        }
        ret = ret + "]";
        System.out.println(ret);
    }
}

原文地址:http://blog.51cto.com/freshair/2055215

时间: 2024-09-30 21:28:24

java数组拷贝的方法的相关文章

java数组拷贝

数组的拷贝 分为 2种情况,一种为浅拷贝,即引用传递,第二种为深拷贝,即不单单只是拷贝了引用,同时开辟了一块新的内存空间 一)浅拷贝有三种方式: //第一种方式利用for循环: int[] a={1,2,4,6}; int length=a.length; int[] b=new int[length]; for (int i = 0; i < length; i++) { b[i]=a[i]; } //第二种方式直接赋值: int[] array1={1,2,4,6}; int[] array

Java数组List换算方法

1.List转换到一个数组.(这里List它是实体是ArrayList) 调用ArrayList的toArray方法. toArray public <T> T[] toArray(T[] a)返回一个依照正确的顺序包括此列表中全部元素的数组.返回数组的执行时类型就是指定数组的执行时类型. 假设列表能放入指定的数组,则返回放入此列表元素的数组.否则,将依据指定数组的执行时类型和此列表的大小分配一个新的数组. 假设指定的数组能容纳列表并有剩余空间(即数组的元素比列表的多),那么会将数组中紧跟在集

java数组-----拷贝、掺入、删除元素

package cn.zxg.arrays2; /** * 测试数组的拷贝 */public class TestArrayCopy { public static void main(String[] args) { TestBaseCopy(); TestBaseCopy2(); String [] str={"阿里","京东","百度","亚马逊"}; removeElment(str,1); } //数组的拷贝 pub

Java数组调用clone()方法,返回的对象是深拷贝还是浅拷贝?

结论: 一维数组深拷贝(重新分配内存,并复制值) 二维数组浅拷贝(只传递引用) 注:若要实现二维数组的深拷贝,可以把二维数组内的每个数组分别用clone()方法复制. 原文地址:https://www.cnblogs.com/alyiacon/p/12543122.html

Java数组转换为List的实践

不曾想到,"Java数组转换为List"竟然有这么多的学问,震撼之余夹带些许不堪.关于"Java数组转换为List"其实是非常基础的知识,况且有很多人在博客中均有所讨论,难免让我觉得写这样的讨论文章显得多少没有必要!转念想到"不积硅步,无以成千里",于是强迫自己再次对该问题做一些深层次的实践. 一.Create ArrayList from array Create ArrayList from array在stackoverflow上引发的讨论

Java基础知识强化86:System类之arraycopy()方法(数组拷贝)

1. arraycopy方法(数组拷贝) 1 public static void arraycopy(object src,int srcPos,Object dest,int destPos, int length) 从指定的数组中复制一个数组,复制从指定位置开始,到目标数组的指定位置结束. 参数:        src - 源数组        srcPos - 源数组中的起始位置        dest - 目的数组        destPos - 目标数据中的起始位置        

java杂记——数组拷贝

这里介绍两种java提供的数组拷贝方法: (1)Arrays提供的copyOf(T src, T desLength)和copyOfRange(T src, int from, int to) (2)System.arraycopy(T src, int from, T des, int from, int length) 使用例子: (1) int [] a = {1,2,3,4,5,6}; int [] b = Arrays.copyOf(a, 8); //把a拷贝到长度为8的b中.b的长度

Java数组合并方法学习。

参考博客: https://blog.csdn.net/liu_005/article/details/72760392 https://blog.csdn.net/jaycee110905/article/details/9179227 在做一道算法题的时候用到数组合并,并且有性能要求,这里对Java数组合并进行学习总结. 分析可以得出,因为数组是定长的,所以解决方法,构造一个新数组,将需要合并的数组放到新数组里面. 使用Arrays.copyOf来构造一个合并之后长度的数组,并将其中一个数组

java 数组的 toString 方法和 equals 方法以及 java.lang.Object 对象的 toString 方法和 equals 方法

1 public class Test { 2 public static void main(String[] args) { 3 int[] a = {1, 2, 4, 6}; 4 int[] b = a; 5 int[] c = {1, 2, 4, 6}; 6 7 //下面这个方法打印的是a数组的引用地址 8 System.out.println(a.toString()); 9 //下面这个方法比较的是两个数组的引用是否相等 10 System.out.println("a.equals