JavaSE基础50题:23. 数组拷贝(数组练习题)

news2024/11/19 3:23:17

文章目录

    • 概述
    • 方法一:运用for循环进行拷贝
    • 方法二:Java内置方法进行拷贝
    • 方法三:指定区间进行拷贝

概述

数组拷贝。
注意:

 	public static void main(String[] args) {
        int[] array1 = {1,2,3,4};
        System.out.println(myToString(array1));
        int[] array2 = array;
        System.out.println(myToString(array2));
    }

这不叫拷贝,因为此时只有一个数组对象

方法一:运用for循环进行拷贝

 public static void main(String[] args) {
        int[] array1 = {1,2,3,4};

        int[] array2 = new int[array1.length]; //开辟新的内存空间,存arry1.length个数据
        for (int i = 0; i < array1.length; i++) {
            array2[i] = array1[i];
        }
        System.out.println(Arrays.toString(array1));
        System.out.println(Arrays.toString(array2));
    }

//执行结果
[1, 2, 3, 4]
[1, 2, 3, 4]

方法二:Java内置方法进行拷贝

Array.copyOf() 方法
其功能:

  1. 拷贝
  2. 扩容
	 public static void main(String[] args) {
        int[] array = {1,2,3,4};

        //拷贝
        int[] array1 = Arrays.copyOf(array,array.length);
        System.out.println(Arrays.toString(array));
        System.out.println(Arrays.toString(array1));

        System.out.println("=======================");

        //扩容
        int[] array2 = Arrays.copyOf(array,array.length*2);
        System.out.println(Arrays.toString(array));
        System.out.println(Arrays.toString(array2));
    }

【输出结果】
在这里插入图片描述

方法三:指定区间进行拷贝

此方法的底层源码:

public static native void arraycopy(Object src, int srcPos, Object desc, int destPos,int length);
  • src:从哪里拷贝
  • srcPos:从拷贝数组的哪个位置开始拷贝
  • dest:拷贝到哪里
  • destPos:从拷贝数组的拷贝到哪个位置
  • length:拷贝多长
 	public static void main(String[] args) {
        int[] array1 = {1,2,3,4};

        int[] array2 = new int[array1.length]; //开辟新的内存空间,存arry1.length个数据
        System.arraycopy(array1,1,array2,0,array1.length-1); //从array1的0位置开始,拷贝到array2的0下标下,且拷贝的长度为array1.length-1
        System.out.println(Arrays.toString(array1));
        System.out.println(Arrays.toString(array2));
    }

//输出结果
[1, 2, 3, 4]
[2, 3, 4, 0]

【也可以缩小拷贝】

 public static void main(String[] args) {
        int[] array1 = {1,2,3,4};
        int[] array2 = Arrays.copyOf(array1,array1.length/2); 

        System.out.println(Arrays.toString(array1));
        System.out.println(Arrays.toString(array2));
    }


//输出结果
[1, 2, 3, 4]
[1, 2]

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

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

相关文章

python爬取 HTTP_2 网站超时问题的解决方案

问题背景 在进行网络数据爬取时&#xff0c;使用 Python 程序访问支持 HTTP/2 协议的网站时&#xff0c;有时会遇到超时问题。这可能会导致数据获取不完整&#xff0c;影响爬虫程序的正常运行。 问题描述 在实际操作中&#xff0c;当使用 Python 编写的爬虫程序访问支持 HTT…

第一课【习题】给应用添加通知和提醒

构造进度条模板通知&#xff0c;name字段当前需要固定配置为downloadTemplate。 给通知设置分发时间&#xff0c;需要设置showDeliveryTime为false。 OpenHarmony提供后台代理提醒功能&#xff0c;在应用退居后台或退出后&#xff0c;计时和提醒通知功能被系统后台代理接管…

【开源】基于Vue+SpringBoot的教学过程管理系统

项目编号&#xff1a; S 054 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S054&#xff0c;文末获取源码。} 项目编号&#xff1a;S054&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 教师端2.2 学生端2.3 微信小程序端2…

使用 KubeRay 和 Kueue 在 Kubernetes 中托管 Ray 工作负载

在 KubeCon CN 2023 的「 Open AI 数据 | Open AI Data」专题中&#xff0c;火山引擎软件工程师胡元哲分享了《使用 KubeRay 和 Kueue 在 Kubernetes 中托管 Ray 工作负载&#xff5c;Sailing Ray workloads with KubeRay and Kueue in Kubernetes议题。以下是本次演讲的文字…

区块链实验室(28) - 拜占庭节点劫持区块链仿真

在以前的FISCO环境中仿真拜占庭节点攻击区块链网络。该环境共有100个节点&#xff0c;采用PBFT作为共识机制&#xff0c;节点编号分别为&#xff1a;Node0&#xff0c;Node&#xff0c;… &#xff0c;Node99。这100个节点的前2010区块完全相同&#xff0c;自区块2011开始分叉。…

Qt/C++音视频开发58-逐帧播放/上一帧下一帧/切换播放进度/实时解码

一、前言 逐帧播放是近期增加的功能&#xff0c;之前也一直思考过这个功能该如何实现&#xff0c;对于mdk/qtav等内核组件&#xff0c;可以直接用该组件提供的接口实现即可&#xff0c;而对于ffmpeg&#xff0c;需要自己处理&#xff0c;如果有缓存的数据的话&#xff0c;可以…

一文了解半导体检测的利器—探针台

探针台是半导体行业重要的检测装备之一&#xff0c;其广泛应用于复杂、 高速器件的精密电气测量&#xff0c;旨在确保质量及可靠性&#xff0c;并缩减研发时间和器件制造工艺的成本。 半导体测试可以按生产流程可以分为三类&#xff1a;验证测试、晶圆测试测试、封装检测。探针…

王炸升级!PartyRock 10分钟构建 AI 应用

前言 一年一度的亚马逊云科技的 re:Invent 可谓是全球云计算、科技圈的狂欢&#xff0c;每次都能带来一些最前沿的方向标&#xff0c;这次也不例外。在看完一些 keynote 和介绍之后&#xff0c;我也去亲自体验了一些最近发布的内容。其中让我感受最深刻的无疑是 PartyRock 了。…

首次发布亚马逊云科技生成式AI技术堆栈,re:Invent大会重磅发布

亚马逊云科技总是在不断重构&#xff0c;以推动创新&#xff0c;而今年re:Invent的主角毫无疑问是生成式AI。这从亚马逊云科技副总裁、首席布道师Jeff Barr在re:Invent 2023之前就迫不及待地写了一篇关于PartyRock的体验试玩教程即可窥见一斑。 事实也确实如此。在Las Vegas&am…

echarts绘制一个环形图2

其他echarts&#xff1a; echarts绘制一个环形图 echarts绘制一个柱状图&#xff0c;柱状折线图 echarts绘制一个饼图 效果&#xff1a; 组件代码&#xff1a; <template><div class"wrapper"><div ref"doughnutChart2" id"dough…

数学建模-二氧化碳排放及时空分布测度

二氧化碳排放及时空分布测度 整体求解过程概述(摘要) 面临全球气候变化的巨大挑战&#xff0c;我国积极响应《巴黎协定》的号召&#xff0c;提出“2030年前碳达峰&#xff0c;2060 年前实现碳中和”的碳排放发展目标&#xff0c;并将碳中和相关工作作为 2021 年的重点任务之一…

node14升级node16之后无法启动处理

node从14升级到16之后&#xff0c;项目就无法启动了&#xff0c;研究了webpack3升级5&#xff0c;研究好几个小时都无法启动&#xff0c;最后发现&#xff0c;微微升级几个版本就可以了。webpack还是3 新版的依赖 "scripts": {"dev": "webpack-dev-se…

梳理一下嵌入式和单片机之间的关系

一定有很多人都听说过嵌入式和单片机&#xff0c;但在刚开始接触时&#xff0c;不知道大家有没有听说过嵌入式就是单片机这样的说法&#xff0c;其实嵌入式和单片机还是有区别的。单片机与嵌入式到底有什么关系&#xff1f; 下面我们就来说说嵌入式和单片机之间的联系和区别吧…

spring IOC介绍

spring的Ioc真是个好东西啊&#xff0c;那它到底是什么东西呢&#xff0c;控制反转&#xff0c;到底是怎么转的呢&#xff1f; 假设啊你现在是一个导演&#xff0c;想排部戏&#xff0c;那是不是得需要演员和舞台(spring中的bean)&#xff0c;如果按平常的编程思维就是new 一个…

在linux上如何运用虚拟数据优化器VDO

本章主要介绍虚拟化数据优化器。 什么是虚拟数据优化器VDO 创建VDO设备以节约硬盘空间 16.1 了解什么是VDO VDO全称是Virtual Data Optimize&#xff08;虚拟数据优化)&#xff0c;主要是为了节省硬盘空间。 现在假设有两个文件file1和 file2&#xff0c;大小都是10G。file…

如何正确使用网管工业交换机

工业交换机是一种专为满足工业应用需求而设计的通讯设备。它具备工业级品质&#xff0c;如耐受高温和低温的能力&#xff0c;能够抵御振动、防雷和防尘。此外&#xff0c;工业交换机还集成了多种丰富的协议&#xff0c;包括路由、交换和安全功能。根据是否可进行“网络管理”的…

下跌中寻求上涨,昂首资本根据交易量预判牛市

各位投资者你是不是也害怕熊市&#xff0c;担心在熊市中被套&#xff0c;但是投资者你知道吗&#xff1f;专业的投资者难道在熊市中就不会交易吗&#xff1f;昂首资本肯定的告诉你&#xff0c;肯定是交易的&#xff0c;并且常常还是以盈利结束交易。其实我们投资者和专业高手的…

跨境企业必看,数据跨境传输相关要求详解

对于跨境企业而言&#xff0c;数据的跨境传输既是业务拓展、竞争力提升、运营效率优化的重要手段&#xff0c;也是全球化发展和国际合作的必要条件。然而&#xff0c;这一过程伴随着法律差异、技术难题等多重挑战&#xff0c;企业需要谨慎应对&#xff0c;确保数据的安全、合规…

深入理解Dubbo-2.Dubbo功能之高级特性分析

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码、Kafka原理、分布式技术原理&#x1f525;如果感觉博主的文章还不错的话&#xff…

用虚拟信用卡绑定直接支付 (Google play账号绑定教程)

虚拟信用卡的用途十分广泛&#xff0c;可用于购买应用&#xff0c;游戏内购、谷歌商店以及自己账号的充值&#xff0c;对于喜欢外服游戏的小伙伴来说&#xff0c;学会使用谷歌商店绑定虚拟信用卡是十分重要的。谷歌账号如何绑定信用卡呢&#xff1f;谷歌商店如何充值&#xff1…