zoukankan      html  css  js  c++  java
  • JAVA数组拷贝

    在java中,允许将一个数组变量拷贝给另一个数组变量.这时,两个变量将引用同一个数组(数组在内存中只有一个,只是这两个数组变量都指向数组的首地址)

    int[] smallPrimes = {2,3,4,5,6,7};
    int[] luckNumber = smallPrimes;
    System.out.println(Arrays.toString(smallPrimes));
    luckNumber[5] = 12;
    System.out.println(Arrays.toString(smallPrimes));
    [2, 3, 4, 5, 6, 7]
    [2, 3, 4, 5, 6, 12]  // 这里修改了luckNumber,smallPrimes数值也跟着改变了,就说明两个指向的是同一个地址

    如果希望将一个数组的所有值拷贝到一个新的数组中去,就要使用Arrays类的copyOf方法

    int[] smallPrimes = {2,3,4,5,6,7};
    int[] copyLuckNumbers = Arrays.copyOf(smallPrimes,smallPrimes.length);
    System.out.println(Arrays.toString(smallPrimes));
    copyLuckNumbers[5] = 12;
    System.out.println(Arrays.toString(smallPrimes)); System.out.println(Arrays.toString(copyLuckNumbers));
    [2, 3, 4, 5, 6, 7]
    [2, 3, 4, 5, 6, 7]  //只复制了值,这里copyLuckNumbers 是重新开辟的一个空间

    [2, 3, 4, 5, 6, 12]
    copyOf()方法的第二个参数是数组长度,这个方法通常用来增加数组的大小
    int[] smallPrimes = {2,3,4,5,6,7};
    smallPrimes = Arrays.copyOf(smallPrimes,2*smallPrimes.length);

    如果数组元素是数值型,那么多余的元素将被赋值为0;如果数组元素是布尔型,则将赋值为false.相反,如果长度小于原始数组的长度,则之拷贝最前面的元素.

     
  • 相关阅读:
    树与树的表示
    队列的顺序/链式存储实现
    堆栈的链式存储实现
    堆栈的顺序存储实现
    线性表的链式存储求表长,查找,插入,删除
    C语言博客作业--函数
    C语言博客作业--嵌套循环
    C语言第三次博客作业---单层循环结构
    C语言第二次博客作业---分支结构
    C语言第一次博客作业——输入输出格式
  • 原文地址:https://www.cnblogs.com/liuzhidao/p/13701784.html
Copyright © 2011-2022 走看看