栏目:JAVA 基础(<--点此查看更多)Java 数据类型|类|对象|封装|继承|多态等特性
  • 数组复制,从数组中截取指定长度

  • Wed Sep 17 03:10:18 CST 2014 编程者 我要收藏(...) 评论 ...
  • 从指定位置取指定长度到新数组中
  • public static void arraycopy(Object src,
    int srcPos,
    Object dest,
    int destPos,
    int length);

    从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。从 src 引用的源数组到 dest 引用的目标数组,数组组件的一个子序列被复制下来。被复制的组件的编号等于 length 参数。源数组中位置在 srcPos 到 srcPos+length-1 之间的组件被分别复制到目标数组中的 destPos 到 destPos+length-1 位置。
    如果参数 src 和 dest 引用相同的数组对象,则复制的执行过程就好像首先将 srcPos 到 srcPos+length-1 位置的组件复制到一个带有 length 组件的临时数组,然后再将此临时数组的内容复制到目标数组的 destPos 到 destPos+length-1 位置一样。


    参数:
    src - 源数组。
    srcPos - 源数组中的起始位置。
    dest - 目标数组。
    destPos - 目标数据中的起始位置。
    length - 要复制的数组元素的数量。

    抛出:
    IndexOutOfBoundsException - 如果复制会导致对数组范围以外的数据的访问。
    ArrayStoreException - 如果因为类型不匹配而使得无法将 src 数组中的元素存储到 dest 数组中。
    NullPointerException - 如果 src 或 dest 为 null。

    public class CopyArray {

    public static void main(String[] args) {
    int elements[] = { 1, 2, 3, 4, 5, 6 };
    int hold[] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };

    int result[] = new int[16];

    // 数组累加
    System.arraycopy(elements, 0, result, 0, elements.length);
    System.arraycopy(hold, 0, result, elements.length, hold.length);
    for (int i = 0; i < result.length; i++)
    System.out.println("result[" + i + "]=" + result[i]);

    // 自复制
    System.arraycopy(elements, 0, elements, 1, 1);
    for (int i = 0; i < elements.length; i++)
    System.out.println("elements[" + i + "]=" + elements[i]);

    // 覆盖累加
    System.arraycopy(elements, 0, hold, 0, elements.length);
    for (int i = 0; i < hold.length; i++)
    System.out.println("hold[" + i + "]=" + hold[i]);
    }
    }
  • 信息来源:http://www.bianchengzhe.com (举报这篇文章)
  • 好评(...) 中评(...) 差评(...)