当前位置: 代码迷 >> J2SE >> 老掉牙的System.arraycopy()有什么地方不如Array.copy
  详细解决方案

老掉牙的System.arraycopy()有什么地方不如Array.copy

热度:7979   发布时间:2013-02-25 00:00:00.0
老的System.arraycopy()有什么地方不如Array.copy
老的方法和新的方法相比,是功能少呢还是支持的类型少?

新的方法优点在哪里?

------解决方案--------------------------------------------------------
底层还是调用的System.arraycopy,只不过新的方法更好理解,新的内容用返回值来表示,System.arraycopy的所有的内容都是在参数中指定,当然这样也增加了灵活性,可以自己指定目标数组
------解决方案--------------------------------------------------------
是Arrays.copyOf吧,这个方法将复制的数组元素加入到新的数组中,也就是这个方法会创建新的数组

System.arrayCopy 不生成新数组,只是将复制元素加入已经存在的数组中

其实Arrays.copyOf里面也是调用了System.arrayCopy的。
------解决方案--------------------------------------------------------
Java code
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;    }
------解决方案--------------------------------------------------------
其实Arrays.copyOf的方法里还是调用了System.arraycopy的,本质是一样的。
个人觉得把放在Arrays里,使得关于数组操作都放在一个类(Arrays)里,方便大家记忆和使用。
  相关解决方案