System.arraycopy()详解

2023-11-16

java.lang.System.arraycopy() 方法复制指定的源数组的数组 ,在被copy的数组指定的位置开始,到目标数组的指定位置。

具体方法如下:

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
    /**
src:源数组;

srcPos:源数组要复制的起始位置;

dest:目的数组;

destPos:目的数组放置的起始位置;

length:复制的长度.

注意:src 和 dest都必须是同类型或者可以进行转换类型的数组.
    */

应用场景:在arraylist源码中,实现add,remove方法的时候用到。 处理大量的字节。

示例详解

System.arraycopy(int[] arr, int star,int[] arr2, int start2, length);

/**
5个参数,
第一个参数是要被复制的数组
第二个参数是被复制的数字开始复制的下标
第三个参数是目标数组,也就是要把数据放进来的数组
第四个参数是从目标数据第几个下标开始放入数据
第五个参数表示从被复制的数组中拿几个数值放到目标数组中

比如:

数组1:int[] arr = { 1, 2, 3, 4, 5 };
数组2:int[] arr2 = { 5, 6,7, 8, 9 };
运行:System.arraycopy(arr, 1, arr2, 0, 3);

得到:
int[] arr2 = { 2, 3, 4, 8, 9 };

过程分析:
先看第1、2、5个参数,得出要从arr中从下标为1的数组中拿出三个数值:2,3,4
然后看第3、4个参数,知道要在arr2中从下标为0开始放入数据,放入的个数也是第五个参加决定的这里是3个
所有最后的结果就是:2,3,4(加入的) + 8,9(原来的)
比如:System.arraycopy(arr , 1 , arr2 , 2 , 3);
表示的是从数组arr中下标为1的位置取出3个数据,放到数组arr2中从下标为2的位置,放入3个数据。
*/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

System.arraycopy()详解 的相关文章

  • 如何将 Java 赋值表达式转换为 Kotlin

    java中的一些东西就像 int a 1 b 2 c 1 if a b c System out print true 现在它应该转换为 kotlin 就像 var a Int 1 var b Int 2 var c Int 1 if a
  • 如何在 JFace 的 TableViewer 中创建复选框?

    我创建了一个包含两列的 tableViewer 我想将其中一列设为复选框 为此 我创建了一个 CheckBoxCellEditor 但我不知道为什么它不起作用 名为 tableName 的列显示其值正常 色谱柱规格如下 String COL
  • 我需要在 Spring 中检查每个控制器中的有效会话吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 假设在 Spring Mvc 的 Web 应用程序中 我们是否需要检查每个控制器或 jsps 中的有效会话 我该如何解决 MVC 中的
  • Java程序中的数组奇怪的行为[重复]

    这个问题在这里已经有答案了 我遇到了这个 Java 程序及其以意想不到的方式运行 以下程序计算 int 数组中元素对之间的差异 import java util public class SetTest public static void
  • 在Windows上安装Java 11 OpenJDK(系统路径问题)

    Java 11 最近发布了 众所周知 这个版本没有安装文件 当然 要在没有安装程序的情况下安装 Java 我将系统设置 PATH 和 JAVA HOME 设置为解压缩 Java 11 的文件夹的地址 根据对类似问题的已接受回复建议 唯一的事
  • manifest.mf 文件的附加内容的约定?

    Java JAR 中的 MANIFEST MF 文件是否有任何超出 MANIFEST MF 约定的约定 JAR规范 http download oracle com javase 1 4 2 docs guide jar jar html
  • 使用 ANTLR 为 java 源代码生成抽象语法树

    如何使用 ANTLR 从 java src 代码生成 AST 有什么帮助吗 好的 步骤如下 前往ANTLR站点 http www antlr org 并下载最新版本 下载Java g和JavaTreeParser g文件来自here htt
  • java中删除字符串中的特殊字符?

    如何删除字符串中除 之外的特殊字符 现在我用 replaceAll w s 它删除了所有特殊字符 但我想保留 谁能告诉我我该怎么办 Use replaceAll w s 我所做的是将下划线和连字符添加到正则表达式中 我添加了一个 连字符之前
  • 当分配给变量时,我可以以某种方式重用 Gremlin GraphTraversals 代码吗?

    我有看起来像这样的 GraphTraversals attrGroup GraphTraversal
  • 序列化对象以进行单元测试

    假设在单元测试中我需要一个对象 其中所有 50 个字段都设置了一些值 我不想手动设置所有这些字段 因为这需要时间而且很烦人 不知何故 我需要获得一个实例 其中所有字段都由一些非空值初始化 我有一个想法 如果我要调试一些代码 在某个时候我会得
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • 尝试使用 Ruby Java Bridge (RJB) gem 时出现错误“无法创建 Java VM”

    我正在尝试实现 Ruby Java Bridge RJB gem 来与 JVM 通信 以便我可以运行 Open NLP gem 我在 Windows 8 上安装并运行了 Java 所有迹象 至少我所知道的 都表明 Java 已安装并可运行
  • org.jdesktop.application 包不存在

    几天以来我一直在构建一个 Java 桌面应用程序 一切都很顺利 但是今天 当我打开Netbeans并编译文件时 出现以下编译错误 Compiling 9 source files to C Documents and Settings Ad
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • 如何测试 spring-security-oauth2 资源服务器安全性?

    随着 Spring Security 4 的发布改进了对测试的支持 http docs spring io spring security site docs 4 0 x reference htmlsingle test我想更新我当前的
  • com.jcraft.jsch.JSchException:身份验证失败

    当我从本地磁盘上传文件到远程服务器时 出现这样的异常 com jcraft jsch JSchException Auth fail at org apache tools ant taskdefs optional ssh Scp exe
  • KeyPressed 和 KeyTyped 混淆[重复]

    这个问题在这里已经有答案了 我搜索过之间的区别KeyPressedand KeyTyped事件 但我仍然不清楚 我发现的一件事是 Keypressed 比 KeyTyped 首先被触发 请澄清一下这些事件何时被准确触发 哪个适合用于哪个目的
  • 中断连接套接字

    我有一个 GUI 其中包含要连接的服务器列表 如果用户单击服务器 则会连接到该服务器 如果用户单击第二个服务器 它将断开第一个服务器的连接并连接到第二个服务器 每个新连接都在一个新线程中运行 以便程序可以执行其他任务 但是 如果用户在第一个
  • java8 Collectors.toMap() 限制?

    我正在尝试使用java8Collectors toMap on a Stream of ZipEntry 这可能不是最好的想法 因为在处理过程中可能会发生异常 但我想这应该是可能的 我现在收到一个我不明白的编译错误 我猜是类型推理引擎 这是

随机推荐

  • 陀螺研究院:“模式币”项目生命周期比较研究报告(附完整PDF下载)

    文 陀螺研究院 飞鱼 秀秀 最近 PGC 和 趣步 项目跑路 很多维权帖子发布在网上 引发大家的热议 如果说2019年是 平台币之年 按照这样的发展趋势 把2019年称为 模式币之年 也不为过 模式币 疯狂拉盘造成的财富效应会吸引许多人入场
  • 创建一个popwindow 并动态设置pop的高度 限定pop高度

    创建一个popwindow 并动态设置pop的高度 限定pop高度 这里举个例子 pop里面放的是一个listview 直接上代码 SelectMedicalCasePopwindow java public class SelectMed
  • 力扣每日一题——三角形的最大周长

    题目链接 class Solution public int largestPerimeter vector
  • react仿钉钉流程图-审批工作流

    前言 此前做项目遇到一个流程图的业务场景 查找了一些资料和插件都没有找到理想的 最后找到了一款比较美观 仿钉钉流程图的 但是找来找去都找不到react版本的 只找到vue版本的 没办法 只能自己写一个 仿钉钉流程图 Api包括 一维数组传参
  • vue 自适应屏幕分辨率,在不同分辨率,以及缩放都按照设计稿展示

    项目中 会遇到这样的问题 一个网页在1920 1080的分辨率下 一屏正好展示完当前页面 但是在1366 768 或者在2k高分辨率下 页面会有滚动条 或者下方会出现空白 还有一种是14寸 或者13寸笔记本在出厂时会设置缩放125 或者15
  • C# NPOI写excel文件,设置某个单元格为自动筛选

    如标题所示 附上几行代码 HSSFWorkbook workbook new HSSFWorkbook 创建工作表 var sheet workbook CreateSheet 信息表 设置excel的自动筛选 CellRangeAddre
  • 函数局部有界性定理_高等数学入门——函数极限的基本性质

    系列简介 这个系列文章讲解高等数学的基础内容 注重学习方法的培养 对初学者不易理解的问题往往会不惜笔墨加以解释 在内容上 以国内的经典教材 同济版高等数学 为蓝本 并对具体内容作了适当取舍与拓展 例如用 语言证明函数极限这类高等数学课程不要
  • API学习笔记:2.3-2.4 API核心DLL与Unicode和多字节

    API核心DLL与Unicode和多字节 2 3 Windows核心DLL 2 3 1 核心DLL简介 2 4 Unicode和多字节 2 4 1 W版本和A版本的API 2 4 2 Unicode与ASCII的转换 前面几章基本都是总体的
  • ls: 显示目下的内容及相关属性信息

    ls 显示目下的内容及相关属性信息 功能说明 ls 命令可以理解为英文单词 list 的缩写 其功能是列出目录的内容及其内容属性信息 list directory contents 该命令有点类似于DOS系统下的dir命令 有趣的是 Lin
  • Linux内核分析:输入输出,字符与块设备 31-35

    CPU 并不直接和设备打交道 它们中间有一个叫作设备控制器 Device Control Unit 的组件 例如硬盘有磁盘控制器 USB 有 USB 控制器 显示器有视频控制器等 这些控制器就像代理商一样 它们知道如何应对硬盘 鼠标 键盘
  • 左孩子右兄弟 蓝桥杯1451 python

    题目描述 对于一棵多叉树 我们可以通过 左孩子右兄弟 表示法 将其转化成一棵二叉树 如果我们认为每个结点的子结点是无序的 那么得到的二叉树可能不唯一 换句话说 每个结点可以选任意子结点作为左孩子 并按任意顺序连接右兄弟 给定一棵包含 N 个
  • 利用cl_demo_output=>display( )实现日志的功能

    有一些客户需要对一些批处理程序进行消息日志提醒 需要用到弹窗ALV cl demo output gt display 是实现该功能最简单的方式 只需要定义一个内表就行了 如图所以 客户运行了一个库存导入的程序 将BAPI抛出的结果利用弹窗
  • debian 11搭建nis服务器

    NIS的由来与功能 NIS Network InformationService网络信息服务 用于对网络中的多台Linux系统的帐号和密码的集中管理和维护 也就是说可以用同一个帐号登录域中的Linux系统 不需要所登录的系统中存在该帐号 所
  • QT入门笔记(一)QT信号和槽

    QT入门笔记 Qt事件 Qt 事件指的是应用程序和用户之间的交互过程 例如用户按下某个按钮 点击某个输入框等等 实际上除了用户会与应用程序进行交互外 操作系统也会与应用程序进行交互 例如当某个定时任务触发时 操作系统会关闭应用程序 这也是一
  • Linux C基础——” Makefile “ 文件管理大师你拜访过嘛?

    文章目录 Make简介 Makefile基本结构 1 make是如何工作的 2 makefile文件中的依赖关系理解 3 Makefile书写规则 4 Makefile 基础的使用 3 makefile文件中的依赖关系理解 4 创建和使用变
  • 个人博客 blog

    介绍 blog是基于springboot搭建的个人博客 响应式 项目地址 https github com chy1984 blog 前端技术 html css js jq bootstrap 后台技术 springboot thymele
  • 公司章程变更需要经过哪些程序

    公司章程变更需要经过以下程序 1 提议修改公司章程 一般由董事会提出修改建议 董事会是公司经营的决策机构 对公司经营情况以及章程的执行和变化情况较为了解 能够对公司章程的修改提出具有积极意义的建议 2 将修改公司章程的提议通知股东 公司章程
  • 搜索引擎solr系列--3字节的UTF-8序列的字节3无效

    搜索引擎solr系列 3 字节的 UTF 8 序列的字节 3 无效问题 有一次在数据导入的时候 报出了这个错误 大概如下 Data config 3 字节的 UTF 8 序列的字节 3 无效 很明显编码问题 不管你是报了1字节 2字节 之类
  • Idea上运行eclipse项目及打包

    概述 最近有时间 想把原来eclipse的项目迁移到IntelliJ IDEA 中 迁移过程中遇到很多问题 再次记录一下 方便其他 童鞋 快速爬坑 迁移前准备 jdk安装及配置 不会的同学自行度娘 tomcat安装及配置 不会的同学自行度娘
  • System.arraycopy()详解

    java lang System arraycopy 方法复制指定的源数组的数组 在被copy的数组指定的位置开始 到目标数组的指定位置 具体方法如下 public static void arraycopy Object src int