Java基础之数组拷贝

Arrays.copyOf

详解

copyOf是Arrays类下面的一个方法,用于拷贝各种数组

以整型数组为例:int [ ] copyOf(int [ ]array,int newLength);第一个参数是想要拷贝到数组,第二个参数是新拷贝得到的数组的大小(不一定非得和原始数组大小一样)

俩次打印的结果如下:

这说明拷贝后,array1与array2指向了不同的对象,只不过其中的数一样,所以通过array2改变数组的值不会影响array1.

拓展

上面说了array2的大小不一定与array1的相同,所以,Arrays.copyOf也可以实现扩容:

扩容后,剩余位置就初始化为0。

那如果变成1/2长呢?也可以,结果如下:

System.arraycopy

实际上copyOf的内部就是调用arraycopy实现的

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

native说明是本地方法,本地方法的特点是:1.它的底层是由c/c++代码实现的,所以我们看不到它的实现方法 2.速度快。

src是从哪里拷,srcPos是从哪个位置开始拷(即下标),dest是考到哪里,length是要拷贝多长

那是null

由此可见,array2中剩余的空间就是系统默认值

拓展

根据这个方法的参数,就可以知道,System.arraycopy可以指定拷贝区间

Arrays.copyOfRange

由arraycopy可以指定拷贝区间,又想到了Arrays.copyOfRange,它也可以。还是以整型数组举例

int [ ] copyOfRange(int [ ]array,int from,int to);

有返回值,所以要接收

这是从下标为1拷贝到下标为3,结果为:

这是因为在Java中的from to一般为左闭右开区间

数组名.clone()

这也是数组拷贝的方法之一

有关数组操作的其他方法

Arrays.equals

它是判断两个数组的对象的值是否完全一样,一样就返回true,否则返回false

结果为:

第一个打印false是因为数组是局部变量,它存放了所指向对象的地址,而array1与array2指向的空间不同,即地址不同,所以第一个是false

Arrays.fill

用法举例

将一个数组的值全部赋值为指定的值,可以对各种类型的数组进行操作

也可以局部赋值

还是再加上from to即可

结果呢?还是左闭右开区间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/193836.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解:Class.getResource与ClassLoader.getResource使用区别

深入理解:Class.getResource与ClassLoader.getResource使用区别 一作用:都是使用类的类加载器来读取某个文件,从而获取该文件的URL对象二Class.getResource()方法读取文件:1.若文件路径以“/”开头,则该方法会从classp…

Python面向对象⑤:多态【侯小啾python领航班系列(二十三)】

Python面向对象⑤:多态【侯小啾python领航班系列(二十三)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹…

非标设计之气缸概述

气缸的组成: 气缸的分类 单作用气缸: 活塞仅一侧供气,气压推动活塞产生推力伸出,靠弹簧或自重返回。 双作用气缸: 气缸活塞两侧都有气压力,来实现前进或后退动作。 气缸的缓冲 但是,气缸也…

【蓝桥杯】翻硬币

翻硬币 思路&#xff1a; 其实有点贪心的意思&#xff0c;依次比较&#xff0c;不同就1&#xff0c;然后修改自己的字符串和下一个的字符串&#xff0c;再匹配。 #include<iostream> #include<string> using namespace std;string now,res;int main(void) {cin&g…

【Element-ui】Link 文字链接 与 Radio 单选框

文章目录 前言一、Link 文字链接1.1 基础用法1.2 禁用状态1.3 下划线1.4 图标 二、Radio 单选框2.1 基础用法2.2 禁用状态2.3 单选框组2.4 按钮样式2.5 带有边框2.6 Radio Eventsinput事件 2.7 Radio-group Attributes 总结 前言 在前端开发中&#xff0c;用户界面的元素设计和…

Python继承的设计及演化

Python中的继承 文章目录 Python中的继承概念明确MRO深度优先算法&#xff08;Python2.2之前及Python2.2的经典类中使用&#xff09;优化版的深度优先算法&#xff08;只在Python2.2版本的新式类中使用&#xff09;广度优先算法&#xff08;Python任何版本都从未使用过&#xf…

【Python】tensorflow学习的个人纪录(3)

sess tf.Session()actor Actor(sess, n_featuresN_S, lrLR_A, action_bound[-A_BOUND, A_BOUND])步进&#xff1a;

HDMI之数据岛

概述 发送端在发送视频信号之前,将多媒体信息通过数据岛传输给接收端。接收端通过数据岛信息获取当前分辨率(VIC),编码信息(RGB/YCR等),色彩空间,位深等等。然后对应将视频信息解码。与此同时,多余的带宽用于传输音频信息等。本文通过具体的包信息(从实验室仪器拍照…

智能优化算法应用:基于模拟退火算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于模拟退火算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于模拟退火算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.模拟退火算法4.实验参数设定5.算法结果6.参考…

4_企业架构双点服务器HA

企业架构双点服务器HA 学习目标和内容 1、能够描述高可用HA的作用 2、能够理解VIP的切换 3、能够描述keepalived作用 4、能够理解主master和备backup服务器关系 5、能够实现主备服务器高可用配置 6、能够实现模拟业务宕机服务切换 一、背景描述及其方案设计 1、业务背景描述 时…

JavaSE学习路线及经验所谈

前言 一.学习框架二.学习经验 相信很多小白刚开始学习Java时&#xff0c;都是靠自己在网上搜集资料&#xff0c;并没有明确规划&#xff0c;不知道要学习什么内容&#xff0c;也不知道学习的重点是什么&#xff0c;那么这篇文章会给你一个大致的指引&#xff0c;当然也可以作为…

网络之路27:IRF设备堆叠

正文共&#xff1a;3210 字 34 图&#xff0c;预估阅读时间&#xff1a;5 分钟 目录 网络之路第一章&#xff1a;Windows系统中的网络 0、序言 1、Windows系统中的网络1.1、桌面中的网卡1.2、命令行中的网卡1.3、路由表1.4、家用路由器 网络之路第二章&#xff1a;认识企业设备…

每日一题:LeetCode-209. 长度最小的子数组(滑动窗口)

每日一题系列&#xff08;day 11&#xff09; 前言&#xff1a; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f50e…

【BLE基础知识】--Slave latency设置流程及空中包解析

1、Slave latency基本概念 当BLE从设备对耗电量要求较高时&#xff0c;若需要节省耗电量&#xff0c;则可以通过设置Slave Latency参数来减少BLE从设备的耗电。 Slave Latency&#xff1a;允许Slave&#xff08;从设备&#xff09;在没有数据要发的情况下&#xff0c;跳过一定…

如何在线给官网搭建一个帮助文档?

在数字化时代&#xff0c;帮助文档已成为官网不可或缺的一部分。然而&#xff0c;传统的帮助文档往往只是简单地罗列问题和答案&#xff0c;缺乏互动性和用户体验。那么&#xff0c;如何在线给官网搭建一个富有创意且用户友好的帮助文档呢&#xff1f; | 一、打造沉浸式体验 传…

C/C++学生选课/排课系统[2023-12-3]

问题描述&#xff1a;根据我校自动化专业的部分必修及选修课信 息&#xff0c;设计一个学生选课/排课系统。 基本要求&#xff1a; 1、从文件读入课程信息&#xff1b; 2、从键盘输入拟添加的选修课信息&#xff1b; 3、删除已选的选修课(1门或多门) &#xff1b; 4、输出已…

手写实现一个动态代理框架

手写实现一个动态代理框架 什么是代理模式什么是动态代理动态代理中的编译、类加载与对象实例化手写实现一个动态代理框架实现细节DynamicProxyHandlerProxy生成代码写入代码到磁盘文件调用编译器进行编译调用类加载器进行类加载反射实例化删除前面生成的java文件和class文件 C…

全网关键词采集,免费关键词采集软件使用方法

网站的SEO优化已经成为企业提升在线可见性的不二选择。而关键词的选择和使用则是SEO优化的核心。本文将专心分享关键词采集的正确用法&#xff0c;助您在SEO的道路上掌握正确的方向。 关键词采集&#xff1a;SEO的基础 让我们明确关键词采集的重要性。在搜索引擎的世界里&…

Python生产者消费者模型

额滴名片儿 &#x1f388; 博主&#xff1a;一只程序猿子 &#x1f388; 博客主页&#xff1a;一只程序猿子 博客主页 &#x1f388; 个人介绍&#xff1a;爱好(bushi)编程&#xff01; &#x1f388; 创作不易&#xff1a;如喜欢麻烦您点个&#x1f44d;或者点个⭐&#xff01…

【蓝桥杯选拔赛真题73】Scratch烟花特效 少儿编程scratch图形化编程 蓝桥杯创意编程选拔赛真题解析

目录 scratch烟花特效 一、题目要求 编程实现 二、案例分析 1、角色分析