浅谈Java中复制数组的方式

 更新时间:2017年08月31日 10:00:48   作者:范红康  
这篇文章主要介绍了Java中复制数组的几种方法,需要的朋友可以参考下。

        在Java里面,可以用复制语句”A=B”给基本类型的数据传递值,但是如果A,B是两个同类型的数组,复制就相当于将一个数组变量的引用传递给另一个数组;如果一个数组发生改变,那么引用同一数组的变量也要发生改变。
        以下是归纳的 java 中复制数组的方法:
        (1) 使用FOR循环,将数组的每个元素复制或者复制指定元素,不过效率差一点
        (2) 使用clone方法,得到数组的值,而不是引用,不能复制指定元素,灵活性差一点
        (3) 使用System.arraycopy(src, srcPos, dest, destPos, length)方法,推荐使用

举例:
1.使用FOR循环

int[] src={1,3,5,6,7,8};
int[] dest = new int[6];
for(int i=0;i<6;i++) dest[i] = src[i];

2.使用clone

int[] src={1,3,5,6,7,8};
int[] dest;
dest=(int[]) src.clone();//使用clone创建

副本,注意clone要使用强制转换
3.使用System.arraycopy

int[] src={1,3,5,6,7,8};
int[] dest = new int[6];
System.arraycopy(src, 0, dest, 0, 6);

        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};

        以上介绍的就是Java语言中数组的几种复制方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • 聊一聊SpringBoot服务监控机制

    聊一聊SpringBoot服务监控机制

    这篇文章主要介绍了聊一聊SpringBoot服务监控机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Spring的IOC原理详情

    Spring的IOC原理详情

    这篇文章主要介绍了Spring的IOC原理详情,IOC是Inversion of Control的缩写,多数书籍翻译成“控制反转”,还有些书籍翻译成为控制反向或者控制倒置
    2022-07-07
  • MyBatis不同Mapper文件引用resultMap实例代码

    MyBatis不同Mapper文件引用resultMap实例代码

    这篇文章主要介绍了mybatis 不同Mapper文件引用resultMap的实例代码,非常不错具有参考借鉴价值,需要的朋友可以参考下
    2017-07-07
  • SpringBoot对Jar包进行加密的示例代码

    SpringBoot对Jar包进行加密的示例代码

    在当今互联网高速发展的时代,软件安全问题变得尤为突出,随着开源技术的普及,Spring Boot等框架的应用越来越广泛,但也伴随着代码被反编译的风险,本文将探讨在Spring Boot项目中对Jar包进行加密,以防止反编译的安全实践,需要的朋友可以参考下
    2023-12-12
  • Spring集成Struts与Hibernate入门详解

    Spring集成Struts与Hibernate入门详解

    这篇文章主要给大家介绍了关于Spring集成Struts与Hibernate的相关资料,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • 详解spring-data-jpa中jpql的投影查询

    详解spring-data-jpa中jpql的投影查询

    投影查询,就是仅仅检索表的部分字段。而不是粗暴的 SELECT * FROM...检索出所有列数据,这篇文章主要介绍了spring-data-jpa中jpql的投影查询,需要的朋友可以参考下
    2021-09-09
  • spring bean.xml文件p标签使用报错的解决

    spring bean.xml文件p标签使用报错的解决

    这篇文章主要介绍了spring bean.xml文件p标签使用报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java 改造ayui表格组件实现多重排序

    Java 改造ayui表格组件实现多重排序

    layui 的表格组件目前只支持单列排序,在实际应用中并不能很好的支撑我们的业务需求。今天一时手痒,决定改造一番以支持多重排序。
    2021-04-04
  • IntelliJ IDEA 2020.2.3永久破解激活教程(亲测有效)

    IntelliJ IDEA 2020.2.3永久破解激活教程(亲测有效)

    intellij idea 2022是一款市面上最好的JAVA IDE编程工具,该工具支持git、svn、github等版本控制工具,整合了智能代码助手、代码自动提示等功能,本教程给大家分享IDEA 2022最新永久激活码,感兴趣的朋友参考下吧
    2020-10-10
  • C++字符串的处理详解

    C++字符串的处理详解

    这篇文章主要介绍了C++ string字符串类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08

最新评论