当前位置: 首页 > news >正文

Arrays.copyOfRange(),System.arraycopy() 数组复制,数组扩容

Arrays.copyOfRange()

当需要将数组中的 长度扩容时, 数组复制 使用

需要用到Arrays 类提供的的

 

参数解析

* @param original the array from which a range is to be copied
* @param from the initial index of the range to be copied, inclusive
* @param to the final index of the range to be copied, exclusive.

                                                                                                                ---------来自源码注释

第一个参数  从中复制范围的数组

第二个参数  起始的index(索引)  inclusive(包括)

第三个参数  末尾的index(索引)  exclusive(不包括)

举个例子

public static void main(String[] args) {int[]  a  ={1,2,3,4,5,6};int[] c = Arrays.copyOfRange(a,0 , 10);//数组扩容System.out.println(Arrays.toString(c));System.out.println("c"+c.length);System.out.println("a"+a.length);}

 此时输出

[1, 2, 3, 4, 5, 6, 0, 0, 0, 0]
c10
a6

 查看源码  

                                                                                                                           ----来java.util.Arrays

此时可以看到,新创建了一个数组copy   长度为 to - from   返回的是一个新的数组

System.arraycopy() 

并调用  java.lang.System中的

public static native void arraycopy(Object src,  int  srcPos,Object dest, int destPos,int length);

System中arraycopy()参数

* @param      src      the source array.
* @param      srcPos   starting position in the source array.
* @param      dest     the destination array.
* @param      destPos  starting position in the destination data.
* @param      length   the number of array elements to be copied.

src   原数组

srcPos 原数组起始的位置

dest   目标数组

destpos  目标数组起始位置

length  复制length长度从原数组到起始数组

实例  使用这个方法模仿队列的出队

 public static void main(String[] args) {int[]  a  ={1,2,3,4,5,6};int[] c = Arrays.copyOfRange(a,0 , 10);//数组扩容System.out.println(Arrays.toString(c));System.out.println("c的长度为:"+c.length);System.out.println("a的长度为:"+a.length);System.arraycopy(a,1,a,0, a.length-1);System.out.println(Arrays.toString(a));//出队列}

输出

[1, 2, 3, 4, 5, 6, 0, 0, 0, 0]
c的长度为:10
a的长度为:6
[2, 3, 4, 5, 6, 6]

所以Arrays.copyOfRange()方法底层调用了System.arraycopy()

 总结

本文讲了Arrays.copyOfRange()方法针对数组的使用

底层创建一个长度为to-from的数组

将原数组中的数据从从索引form 复制长度为min(form到to,length-from)  复制到copy这个数组中并返回copy这个数组.

复制时有两种情况

to-from小于原数组的长度        此时相当于截取复制

to-from大于原数组的长度         此时相当于扩容复制

毕竟当调用   System.arraycopy 方法时要保证取的 长度要小于src的长度  放的长度要 小于copy的长度

所以要调用Math.min()

相关文章:

Arrays.copyOfRange(),System.arraycopy() 数组复制,数组扩容

Arrays.copyOfRange() 当需要将数组中的 长度扩容时, 数组复制 使用 需要用到Arrays 类提供的的 参数解析 * param original the array from which a range is to be copied * param from the initial index of the range to be copied, inclusive * param to the final ind…...

Python学习37天

# 魔术方法 # 创建类Monster,默认为object的子类 class Monster: name None age None gender None def __init__(self, name, age, gender): self.name name self.age age self.gender gender # 重写魔术方法__str__输出实例对象信息…...

flask的第一个应用

本文编写一个简单的实例来记录下flask的使用 文章目录 简单实例flask中的路由 简单实例 flask的依赖包都安装好之后,我们就可以写一个最简单的web应用程序了,我们把这个应用程序命名为first.py: from flask import Flaskapp Flask(__name__)app.route(/…...

【论文格式】同步更新中

1横向和纵向坐标的坐标密度不能太大,显示太多看起来不好看,本课题组采用emf,目前使用页面内紧凑,600dpi 2Force(kN):k小写 3涉及到变量的,变量本身斜体...

Java-GUI(登录界面示例)

简述: 步骤: (1)构造界面(将组件对象加入容器对象,注意:应设定对容器对象的布局策略) (2)为界面加入事件响应处理(如单击按钮) 实现: 两种方式实现,只有用户名为"admin"且密码为…...

看华为,引入IPD的正确路径

目录 前言 引发重视 作者简介 前言 华为将 IPD 的引入过程归结为三步: 先僵化、后优化、再固化。 如果只是单纯模仿,在不清楚底层逻辑的情况下, 就开始走先僵化的流程,去搞削足适履式的引入。 开始执行后,你就…...

计算机毕业设计Spark+大模型知识图谱中药推荐系统 中药数据分析可视化大屏 中药爬虫 机器学习 中药预测系统 中药情感分析 大数据毕业设计

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

pcb线宽与电流

三十年一路高歌猛进的中国经济, 中国经历了几个三十年? 第一个三十年:以计划为导向。 第二个三十年:以经济为导向。 现在,第三个三十年呢? 应该是以可持续发展为导向。 传统企业摇摇欲坠, 新兴企…...

w~视觉~合集26

我自己的原文哦~ https://blog.51cto.com/whaosoft/12663170 #InternVL 本文设计了一个大规模的视觉-语言基础模型(InternVL),将视觉基础模型的参数扩展到60亿,并逐步与LLM对齐,利用来自不同来源的网络规模的图像-文…...

Qt支持RKMPP硬解的视频监控系统/性能卓越界面精美/实时性好延迟低/录像存储和回放/云台控制

一、前言 之前做的监控系统,已经实现了在windows上硬解码比如dxva2和d3d11va,后续又增加了linux上的硬解vdpau的支持,这几种方式都是跨系统的硬解实现方案,也是就是如果都是windows系统,无论X86还是ARM都通用&#xf…...

【Qt】图片绘制不清晰的问题

背景 实现一个图片浏览器&#xff0c;可以支持放大/缩小查看图片。主要组件如下&#xff1a; // canvaswidget.h #ifndef CANVASWIDGET_H #define CANVASWIDGET_H#include <QWidget>class CanvasWidget : public QWidget {Q_OBJECT public:explicit CanvasWidget(QImag…...

2008年IMO几何预选题第3题

设有两个圆凸内接四边形 A B Q D ABQD ABQD 和 B P Q C BPQC BPQC, 在线段 P Q PQ PQ 上存在一点 E E E, 使得, ∠ E A P ∠ E D Q \angle EAP\angle EDQ ∠EAP∠EDQ, ∠ E B P ∠ E C Q \angle EBP\angle ECQ ∠EBP∠ECQ. 求证: A A A, B B B, C C C, D D D 四点共…...

NAT拓展

NAT ALG&#xff08;NAT应用级网&#xff09; 为某些应用层协议&#xff0c;因为其报文内容可能携带IP相关信息&#xff0c;而普通NAT转化无法将这些IP转化&#xff0c;从而导致协议无法正常运行 例如FTP&#xff0c;DHCP&#xff0c;RSTP&#xff0c;ICMP&#xff0c;IPSEC…...

Flink四大基石之State

State state 可以理解为-- 历史计算结果 有状态计算和无状态计算 无状态计算: 不需要考虑历史数据, 相同的输入,得到相同的输出!如:map, 将每个单词记为1, 进来一个hello, 得到(hello,1),再进来一个hello,得到的还是(hello,1) 有状态计算: 需要考虑历史数据, 相同的输入,可…...

Spacy小笔记:zh_core_web_trf、zh_core_web_lg、zh_core_web_md 和 zh_core_web_sm区别

Spacy小笔记 最近频繁用到spacy&#xff0c;就小记一下。 2024.11.29 zh_core_web_trf、zh_core_web_lg、zh_core_web_md 和 zh_core_web_sm区别 首先&#xff0c;它们都是预训练的中文模型&#xff1a; zh_core_web_trf:395M 架构: 基于 Transformer 架构&#xff08;bert…...

第六届智能控制、测量与信号处理国际学术会议 (ICMSP 2024)

重要信息 2024年11月29日-12月1日 中国陕西西安石油大学雁塔校区 大会官网&#xff1a;www.icmsp.net 大会简介 第六届智能控制、测量与信号处理国际学术会议&#xff08;ICMSP 2024&#xff09;由西安石油大学、中海油田服务股份有限公司、浙江水利水电学院与中国石油装备…...

docker服务容器化

docker服务容器化 1 引言2 多个容器间网络联通2.1 单独创建关联2.2 创建时关联 3 服务搭建3.1 镜像清单3.2 容器创建 4 联合实战4.2 flink_sql之kafka到starrocks4.2 flink_sql之mysql到starrocks 5 文献借鉴 1 引言 ​ 利用docker可以很效率地搭建服务&#xff0c;本文在win1…...

【QT】控件8

1.QDial 通过调节旋钮位置来控制窗口的不透明度&#xff1a; void Widget::on_dial_valueChanged(int value) {qDebug()<<value;this->setWindowOpacity((double)value/100); }效果演示&#xff1a; 2.Date/Time Edit 计算两个日期的差值 ui界面设计 计算按钮按下…...

漫谈推理谬误——错误因果

相关文章 漫谈推理谬误——错误假设-CSDN博客文章浏览阅读736次&#xff0c;点赞22次&#xff0c;收藏3次。在日常生活中&#xff0c;我们会面临各种逻辑推理&#xff0c;有些看起来一目了然&#xff0c;有些非常的科学严谨&#xff0c;但也有很多似是而非&#xff0c;隐藏了陷…...

【数据结构】队列实现剖析:掌握队列的底层实现

在计算机科学中&#xff0c;**队列&#xff08;Queue&#xff09;**是一种常见的数据结构&#xff0c;它遵循先进先出&#xff08;FIFO&#xff0c;First In First Out&#xff09;的原则。队列的应用非常广泛&#xff0c;例如任务调度、资源管理、进程通信等。本篇文章旨在为计…...

【Python工业视觉性能跃迁指南】:3大编译优化+5个CUDA加速技巧,让检测速度提升8.7倍

第一章&#xff1a;Python工业视觉性能跃迁的底层逻辑与评估体系Python在工业视觉领域长期面临“高表达性”与“低实时性”的根本矛盾。性能跃迁并非单纯依赖硬件升级或框架切换&#xff0c;而源于对计算图编译、内存布局优化、异构加速调度及IO瓶颈解耦四维协同机制的系统性重…...

MIXBOX vs MisstarTools:小米路由器插件管理工具深度对比与选择建议

MIXBOX vs MisstarTools&#xff1a;小米路由器插件生态深度解析与实战指南 当小米路由器遇上第三方插件管理工具&#xff0c;整个设备的可玩性会瞬间提升几个层级。作为长期折腾智能路由的玩家&#xff0c;我几乎试遍了市面上所有主流的小米路由器增强方案&#xff0c;其中最让…...

League-Toolkit:提升英雄联盟游戏体验的开源工具集

League-Toolkit&#xff1a;提升英雄联盟游戏体验的开源工具集 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Toolkit是基…...

基于MATLAB的VSG逆变器无源性分析与稳定性研究

基于MATLAB的VSG逆变器无源性分析与稳定性研究 摘要 随着分布式发电和微电网技术的快速发展,逆变器作为新能源并网的关键接口,其稳定性问题日益突出。虚拟同步发电机(VSG)控制技术通过模拟同步发电机的机电特性,为逆变器提供惯性和阻尼支撑,成为提升系统稳定性的重要手…...

大模型进阶必看:Agent Skills如何让AI开发更标准化、可复用?速收藏!

随着AI应用开发成熟&#xff0c;工具调用经历了Function Calling、MCP协议到Agent Skills三个阶段。Agent Skills通过文件系统原生设计&#xff0c;将指令、工作流和资源打包成可复用模块&#xff0c;革新上下文管理&#xff0c;实现代码即工具&#xff0c;摆脱供应商锁定。它使…...

无人机远程识别系统的技术突破与实践指南

无人机远程识别系统的技术突破与实践指南 【免费下载链接】ArduRemoteID RemoteID support using OpenDroneID 项目地址: https://gitcode.com/gh_mirrors/ar/ArduRemoteID 随着无人机技术的快速发展&#xff0c;全球范围内对无人机安全监管的要求日益严格。各国 aviati…...

三菱PLC与MCGS组态农田智能灌溉系统:后发送产品包括梯形图原理图、IO分配及组态画面解析

基于三菱PLC和MCGS组态农田智能灌溉系统 我们主要的后发送的产品有&#xff0c;带解释的梯形图接线图原理图图纸&#xff0c;io分配&#xff0c;组态画面上周刚把农田智能灌溉的项目收尾&#xff0c;把资料打包发给客户的时候&#xff0c;终于能瘫在椅子上喝杯冰可乐了。这个…...

Claude官方Skills推荐

Claude官方skills仓库提供了17个skills### 创意设计类 (5个) #### 1. algorithmic-art - 算法艺术生成器**一句话简介**&#xff1a;使用 p5.js 创建带种子随机数和参数探索的算法艺术 **触发条件**&#xff1a;代码艺术、生成艺术、算法艺术、流场、粒子系统#### 2. canvas-de…...

【专栏二:深度学习】-【一张图讲清楚:什么是向前传输和向后传输】

文章目录前言一、输入数据&#xff1a;训练从样本开始二、向前传播&#xff1a;模型先算出一个预测结果三、先把第一个公式讲明白&#xff1a;为什么会有 z Wx b&#xff1f;四、只有线性计算还不够&#xff0c;所以还需要激活函数1. ReLU2. Sigmoid五、预测结果&#xff1a;…...

Multisim仿真-FSK调制系统设计与性能优化

1. FSK调制系统基础与Multisim入门 FSK&#xff08;频移键控&#xff09;是数字通信中最基础的调制方式之一&#xff0c;它通过不同频率的载波来表示二进制数据。在实际工程中&#xff0c;Multisim作为电子电路仿真利器&#xff0c;能帮我们快速验证设计思路。我刚开始接触通信…...