JAVA复制数组和重置数组大小操作
作者:清水贤人 发布时间:2021-08-29 02:02:41
标签:JAVA,复制,数组,重置
翻看印象笔记发现自己整理过arraycopy()这样一个方法,码字放到这里:
System.arraycopy()是一个静态方法,用来实现重置数组操作
数组复制方法调用和参数列表:
System.arraycopy(src, srcPos, dest, destPos, length);
src:原数组
srcPos:原数组的开始位置
dest:目标数组
destPos:目的数组的开始位置
length:复制长度
数组复制代码示例:
//originalArray 数组全部复制到targetArray数组
int [] originalArray = new int[10];
int [] targetArray = new int [10];
System.arraycopy(originalArray, 0, targetArray, 0, originalArray.length);
通过入参的长度 限制是全部复制还是部分复制
重置数组大小代码示例:
int [] originalArray = new int[10];
int [] temp =new int [originalArray.length + 10];
System.arraycopy(originalArray, 0, temp, 0, originalArray.length);
//数组重新复制
originalArray=temp;
以后建议在重置数组或者数组复制时用这个静态方法,效率要比for循环高(来自某本技术书籍)
补充知识:java:复制数组(指定范围内复制)
相关说明
int newArray0[]=copyOf(这里放被复制的数组,这里放要复制的长度);
当复制长度大于被复制的数组长度时,超出部分int类型用0代替,char类型用null代替。
当复制长度小于被复制的数组长度时,只取开头到指定长度位置的部分。
int newArray1[]=copyOfRange(a,b,c);
range(范围)
a:被复制的数组
b:复制的起始位置(元素被包括)
c:复制的终止位置(元素不被包括)
源码
import java.util.Arrays;
class Demo{
public static void main(String[] args){
int array0[]={32,82,99};//被复制的数组一
System.out.println("被复制的数组为:32,82,99 \n 复制长度为7的数组为:");
int newArray0[]=Arrays.copyOf(array0,7);//复制成长度为7的数组
for(int n=0;n<newArray0.length;n++){
System.out.print("["+newArray0[n]+"]");
}
System.out.println();//换行
int array1[]={82,16,33,11,92,01,34};
System.out.println("被复制的数组为:82,16,33,11,92,01,34 \n 复制从1位置到4位置的数组:");
int newArray1[]=Arrays.copyOfRange(array1,1,4);//从1位置复制到4位置
for(int m=0;m<newArray1.length;m++){
System.out.print("["+newArray1[m]+"]");
}
System.out.println();//换行
}
}
运行结果
来源:https://blog.csdn.net/wjsshhx/article/details/62041120


猜你喜欢
- 使用 replace 函数动态填充字符串String str="Hello {0},我是 {1},今年{2}岁"
- 二叉堆是一种特殊的堆,二叉堆是完全二元树(二叉树)或者是近似完全二元树(二叉树)。二叉堆有两种:最大堆和最小堆。最大堆:父结点的键值总是大于
- 本文实例讲述了C#使用iTextSharp将PDF转成文本的方法。分享给大家供大家参考。具体实现方法如下:using System;usin
- 先为啥要纯手工打造呢,因为对方是用C++做的,我按照他们给出的WSDL实现了一个WebService,结果他们完全不能调用。具体是他们调用的
- Java注解的Excel导出依赖: <dependency> &
- 继承ClassLoader并且重写findClass方法就可以自定义一个类加载器,具体什么是类加载器以及类加载器的加载过程与顺序下次再说,下
- 首先我们先创建项目 注意:创建SpringBoot项目时一定要联网不然会报错项目创建好后我们首先对 application.yml 进行编译
- 实践过程效果代码/** * https://zhima.blog.csdn.net/ */public partial class Form
- 本文实例为大家分享了Android实现ListView下拉刷新上拉加载更多的具体代码,供大家参考,具体内容如下其实谷歌官方目前已经推出Lis
- 题目描述在进行网络编程时,有时需要对局域网的所有主机进行遍历,为此需要获得内网的所以IP地址题目实现:获得内网的所有IP地址的小应用。解题思
- Android之禁止ViewPager滑动实现实例当我们想在同一个Activity或者Fragment中展示多个页面时往往会用到ViewPa
- 在使用微服务中,单体事务注解@Transactional 就不适用了,需要采用分布式事务解决方案,本文介绍分布式事务Seata的安装。Sea
- 1、Java数组介绍在Java中,数组是用来存放同一种数据类型的集合,注意只能存放同一种数据类型(Object类型数组除外)。①、数组的声明
- Java中字符串中子串的查找共有四种方法,如下:1、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串
- 此处项目环境为简单的springboot+mybatis环境。可查看到上一篇文章搭建的简单springboot+mybatis的项目想要控制
- Idea中directory和package的区别,要是错了就右键,make directory as 目录或者源代码目录(Source R
- 本文实例讲述了C#使用iTextSharp设置PDF所有页面背景图功能的方法。分享给大家供大家参考。具体如下:在生成PDF 的时候,虽然可以
- 线程组构造方法我们看这个线程组,线程组名字是system,设置优先级,然后指定父线程是空,可以看出这个是根线程组,这个方法是私有的,不是给我
- 概述状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。这个模式将状态封装成独立的类,并将动作委托到 代表当前状态的对
- 目录前言1.设计模式:单例模式1.1 使用时分配,1.2 声明时实例化1.3 双检锁1.4 .net 特性保证的线程安全1.5 使用DI依赖