加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java:复制非基本类型的数组

发布时间:2020-12-14 05:07:41 所属栏目:Java 来源:网络整理
导读:在 Java中复制非原始类型数组的首选方法是什么?性能问题怎么样? 解决方法 旧学校的方式是: public static void java.lang.System.arraycopy(Object src,int srcPos,Object dest,int destPos,int length) 这从一个现有阵列复制到另一个阵列.您必须自己分配
在 Java中复制非原始类型数组的首选方法是什么?性能问题怎么样?

解决方法

旧学校的方式是:
public static void java.lang.System.arraycopy(Object src,int srcPos,Object dest,int destPos,int length)

这从一个现有阵列复制到另一个阵列.您必须自己分配新数组…假设您正在制作数组的副本.

从JDK 6开始,java.util.Arrays类有许多copyOf方法,用于制作具有新大小的数组副本.相关的是:

public static <T> T[] copyOf(T[] original,int newLength)

public static <T,U> T[] copyOf(U[] original,int newLength,Class<? extends T[]> newType)

第一个使用原始数组类型进行复制,第二个使用不同的数组类型进行复制.

请注意,arraycopy和3参数copyOf都必须根据目标数组类型检查原始(源)数组中每个元素的类型.所以两者都可以抛出类型异常. 2参数copyOf(理论上至少)不需要进行任何类型检查,因此应该(理论上)更快.在实践中,相对性能将取决于实现.例如,阵列复制通常由JVM进行特殊处理.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读