`

使用System.arraycopy()实现数组之间的复制

 
阅读更多

System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。其函数原型是:

public static void arraycopy(Object src,
                             int srcPos,
                             Object dest,
                             int destPos,
                             int length)

src:源数组;    srcPos:源数组要复制的起始位置;

dest:目的数组;    destPos:目的数组放置的起始位置;    length:复制的长度。

注意:src and dest都必须是同类型或者可以进行转换类型的数组.

有趣的是这个函数可以实现自己到自己复制,比如:

int[] fun ={0,1,2,3,4,5,6};

System.arraycopy(fun,0,fun,3,3);

则结果为:{0,1,2,0,1,2,6};

实现过程是这样的,先生成一个长度为length的临时数组,将fun数组中srcPos

到srcPos+length-1之间的数据拷贝到临时数组中,再执行System.arraycopy(临时数组,0,fun,3,3).

分享到:
评论

相关推荐

    System.arraycopy实现数组之间的复制

    ### System.arraycopy实现数组之间的复制 在Java编程语言中,`System.arraycopy()`是一个非常实用且高效的方法,用于在数组之间复制元素。此方法属于`java.lang.System`类,并且是一个静态方法,这意味着可以直接...

    System.arraycopy和Arrays.copyOf

    `System.arraycopy` 和 `Arrays.copyOf` 都是Java中用于复制数组的方法,但它们在使用和处理异常情况上有所不同。这两个方法在处理数组复制时,提供了便利和效率,但各有其适用场景。 `System.arraycopy` 是一个...

    详解Java合并数组的两种实现方式

    使用System.arraycopy()方法可以实现数组的合并,例如: ```java String[] aa = {"11","22","33"}; String[] bb = {"44","55","66"}; String[] cc = {"77","88","99"}; // 合并两个数组 String[] dd = new String...

    java高端技术课程--Java数组如何实现复制

    Java提供了System类的arraycopy()方法,它是进行数组复制的最直接和高效的方式。该方法接受五个参数:源数组、源数组起始位置、目标数组、目标数组起始位置和复制的元素数量。例如: ```java int[] srcArray = {1...

    Java数组练习题(带答案).pdf

    12. **数组复制方法**:除了`=`符号外,还可以使用`System.arraycopy()`方法或`clone()`方法进行数组复制。 13. **数组元素表示**:数组的第三个元素通常表示为`a[2]`,因为下标是从0开始的。 14. **数组下标错误...

    07-Java基础(数组-常见问题)

    - 数组复制:可以使用System.arraycopy()方法或者遍历数组进行复制。 - 排序:使用Arrays.sort()方法对数组进行排序,适用于基本类型的数组;对于对象数组,需要自定义比较器。 - 查找:线性查找效率较低,而二分...

    Java数组特点及基本使用技巧

    2. 数组复制:可以使用System.arraycopy()方法来复制数组。 3. 数组排序:可以使用Arrays.sort()方法来排序数组。 4. 数组查找:可以使用Arrays.binarySearch()方法来查找某个元素。 关于数组的排序操作 1. 对象...

    19.java数组.zip

    - `System.arraycopy()`:用于复制数组的一部分到另一个数组。 - `Arrays.equals()`:比较两个数组是否相等(元素相同且顺序一致)。 - `Arrays.sort()`:对数组进行排序。 6. **多维数组** Java支持多维数组,...

    Java 数组练习题目.doc.docx

    16. 错误的说法是A,`=`不能实现数组复制,只能复制引用。 17. 会导致数组越界的是D,循环条件错误,会访问到a[10]。 18. main方法的合法声明是B,缺少void关键字。 这些知识点涵盖了数组的基本操作和特性,是Java...

    Java数组练习题(带答案)培训讲学.docx

    正确的复制数组的方式是使用`System.arraycopy()`或创建新数组并遍历原数组进行复制。 3. **数组存储位置**:JVM将数组存储在堆内存中,而不是栈内存,因为数组可能很大,栈内存不足以存储大数组。 4. **二分查找*...

    数组 简单 插入 删除 复制 操作

    2. 使用`System.arraycopy()`复制原数组的元素到新数组,或者通过循环逐个复制。 例如,`ArrayCopy.java`文件可能有以下代码: ```java public class ArrayCopy { public static void main(String[] args) { int...

    使用循环操作Java中的数组共3页.pdf.zip

    - `System.arraycopy()`方法用于将一个数组的一部分或全部复制到另一个数组。 - `clone()`方法可以创建数组的浅拷贝。 7. **数组的排序**: - 对于基本类型数组,可以使用Arrays类提供的`sort()`方法进行排序。 ...

    Java数组练习题(带答案) (2).pdf

    11. 数组复制方法除了`arraycopy()`外,还可以使用循环逐个复制,但用`=`赋值只会复制引用。 12. 数组`a`的第三个元素用下标表示为`a[2]`。 13. 访问无效数组下标会抛出`ArrayIndexOutOfBoundsException`异常。 14. ...

    Java 的常用包与数组的复制与排序27

    1. 使用`System.arraycopy()`:这是一个静态方法,可以从源数组的指定位置开始,将一部分元素复制到目标数组的指定位置。例如: ```java int[] src = {1, 2, 3}; int[] dest = new int[src.length]; System....

    Java 数组练习答案.doc.pdf

    2. **数组复制**:在Java中,数组复制通常通过System.arraycopy()方法或使用for循环完成。复制时,实际上是复制数组的引用,而不是复制实际的数据副本。 3. **匿名数组**:没有显式定义变量的数组,可以直接创建并...

    「java三种字符数组合并的方法」.docx

    我们首先创建了一个新的字符串数组 c,然后使用 System.arraycopy 方法将数组 a 和 b 的元素复制到数组 c 中。 代码实现: ```java public static String[] getThreeArray() { String[] a = {"0", "1", "2"}; ...

    java三种字符数组合并的方法.doc

    // 使用System.arraycopy()复制数组 System.arraycopy(a, 0, c, 0, a.length); System.arraycopy(b, 0, c, a.length, b.length); return c; } ``` ### 合并不同类型的数组 除了以上介绍的字符数组合并外,还...

    Java_数组练习答案.docx

    2. **数组复制**:在Java中,当使用"="操作符复制数组时,实际上是复制了数组的引用,而不是复制数组的内容。这意味着两个数组会指向同一个内存位置,改变其中一个会影响另一个。 3. **匿名数组**:没有显式变量...

Global site tag (gtag.js) - Google Analytics