Java数组的应用——数组元素复制(34)

2023-11-04

数组元素的复制

数组元素复制的三种方法及例子

1.一个元素一个元素的复制。

使用“  =  ”号一个一个的赋值。

将数组(a1)的元素一个一个的复制给另一个数组(a2)。

(1)代码

//方法一
        //赋值复制【用=】
        System.out.println("第一种方法:");
        int[] a1 = {20, 30, 20, 40};
        int[] a2 = new int[a1.length];
        System.out.println("复制数组的全部元素:");
        for (var i = 0; i < a1.length; i++) {
            a2[i] = a1[i];
            System.out.println("a2数组:"+a2[i]);
        }
        System.out.println("————————");

(2)结果 

 

2.使用System.arrycop()方法。

可以将原数组中的全部元素复制,也可以复制单个

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

src是原数组名

srcPos是原数组的起始下标(包含此下标)

dest是目标数组名

destPos是目标数组起始下标(包含此下标)

length复制的元素个数(例如:2就是两个元素)

说明:

使用System.arrycop()方法可以全部复制,也可以部分复制。

(1)代码

//方法二
        //系统自带的arraycopy()方法【System.arrycop()方法】
        System.out.println("第二种方法:");
        Day29DuixiangInit x = new Day29DuixiangInit();
        int[] b1 = {1, 2, 3, 5};
        int[] b2 = new int[a1.length];
        int[] b3 = new int[a1.length];

        //复制全部数组
        System.arraycopy(b1, 0, b2, 0, 4);
        //复制部分数组,具有连续性
        System.arraycopy(b1, 2, b3, 0, 2);

        //输出数组b2
        System.out.println("复制数组的全部元素:");
        for (int i = 0; i < 4; i++) {
            System.out.println("b2数组:" + b2[i]);
        }
        System.out.println();

        //输出数组b3
        System.out.println("复制数组的部分元素,且具有连续性:");
        for (int i1 = 0; i1 < 4; i1++) {
            System.out.println("b3数组:" + b3[i1]);
        }
        System.out.println("————————");

(2)结果

 

3.使用Arrays类的copyOf()或copyOfRange()方法。

public static int[] copyOf(int[] original,int newLength)

public static int[] copyOfRange(int[] original,int startPos,int endPos)

original:数组名

newLength:数组复制的长度(3就是三个元素)

startPos:数组起始下标(包含此下标)

endPos:数组结束下标(不包含此下标)

source为原数组

target为复制过原数组的数组

若target=source只是将原数组的引用,没有实现数组的复制。

说明:

Arrays类的copyOf()或copyOfRange()方法可以复制全部元素,也可以复制部分元素。

(1)代码

//方法三
        System.out.println("第三种方法:");
        int[] c1 = {1, 4, 3, 55};
        int[] c2 = new int[c1.length];
        int[] c3 = new int[c1.length];

        //输出c2数组
        System.out.println("复制数组的全部元素:");
        c2 = Arrays.copyOf(c1, 4);
        for (int j1 = 0; j1 <4 ; j1++) {
            System.out.println("c2数组:" + c2[j1]);
        }
        System.out.println();

        //输出c3数组
        System.out.println("复制数组的部分元素,且具有连续性:");
        c3 = Arrays.copyOfRange(c1,0,3);
        for (int j2 = 1; j2< 3; j2++) {
            System.out.println("c3数组:" + c3[j2]);
        }

(2)结果

 

 

 4.全部代码

import java.util.Arrays;

public class Day34shuzuyy {
    public static void main(String[] args) {
//方法一
        //赋值复制【用=】
        System.out.println("第一种方法:");
        int[] a1 = {20, 30, 20, 40};
        int[] a2 = new int[a1.length];
        System.out.println("复制数组的全部元素:");
        for (var i = 0; i < a1.length; i++) {
            a2[i] = a1[i];
            System.out.println("a2数组:"+a2[i]);
        }
        System.out.println("————————");
//方法二
        //系统自带的arraycopy()方法【System.arrycop()方法】
        System.out.println("第二种方法:");
        Day29DuixiangInit x = new Day29DuixiangInit();
        int[] b1 = {1, 2, 3, 5};
        int[] b2 = new int[a1.length];
        int[] b3 = new int[a1.length];

        //复制全部数组
        System.arraycopy(b1, 0, b2, 0, 4);
        //复制部分数组,具有连续性
        System.arraycopy(b1, 2, b3, 0, 2);

        //输出数组b2
        System.out.println("复制数组的全部元素:");
        for (int i = 0; i < 4; i++) {
            System.out.println("b2数组:" + b2[i]);
        }
        System.out.println();

        //输出数组b3
        System.out.println("复制数组的部分元素,且具有连续性:");
        for (int i1 = 0; i1 < 4; i1++) {
            System.out.println("b3数组:" + b3[i1]);
        }
        System.out.println("————————");
//方法三
        System.out.println("第三种方法:");
        int[] c1 = {1, 4, 3, 55};
        int[] c2 = new int[c1.length];
        int[] c3 = new int[c1.length];

        //输出c2数组
        System.out.println("复制数组的全部元素:");
        c2 = Arrays.copyOf(c1, 4);
        for (int j1 = 0; j1 <4 ; j1++) {
            System.out.println("c2数组:" + c2[j1]);
        }
        System.out.println();

        //输出c3数组
        System.out.println("复制数组的部分元素,且具有连续性:");
        c3 = Arrays.copyOfRange(c1,0,3);
        for (int j2 = 1; j2< 3; j2++) {
            System.out.println("c3数组:" + c3[j2]);
        }
}

结果:

 

5.下标越界提示

有类似的提示,说明下标越界。

 

仅个人观点

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java数组的应用——数组元素复制(34) 的相关文章

  • HTTP 状态 404 - 请求的资源不可用

    在使用 MyEclipse IDE 中的 Tomcat 服务器和 Struts 2 框架时 我遇到了反复出现的问题 我将我的程序作为服务器应用程序运行 当它运行时 默认的index jsp 文件将成功打开 但应用程序的其他过去都不起作用 当
  • 检查双精度值的等于和不等于条件

    我在比较两者时遇到困难double values using and 我创建了 6 个双变量并尝试进行比较If健康 状况 double a b c d e f if a b c d e f My code here in case of t
  • 将链接对象转换为流或集合

    我想迭代堆栈跟踪 堆栈跟踪由可抛出对象组成 其 getCause 返回下一个可抛出对象 最后一次调用 getCause 返回 null 示例 a gt b gt null 我尝试使用 Stream iterable 这会导致 NullPoi
  • 有没有好的方法来解析用户代理字符串?

    我有一个Java接收模块User Agent来自最终用户浏览器的字符串的行为需要略有不同 具体取决于浏览器类型 浏览器版本甚至操作系统 例如 FireFox 7 0 Win7 Safari 3 2 iOS9 我明白了User Agent由于
  • MI设备中即使应用程序被杀死,如何运行后台服务

    您好 我正在使用 alaram 管理器运行后台服务 它工作正常 但对于某些 mi 设备 后台服务无法工作 我使用了服务 但它无法工作 如何在 mi 中运行我的后台服务 MI UI有自己的安全选项 所以你需要的不仅仅是上面提到的粘性服务 你需
  • Spring Stomp over Websocket:流式传输大文件

    我的SockJs客户端在网页中 发送帧大小为16K的消息 消息大小限制决定了我可以传输的文件的最大大小 以下是我在文档中找到的内容 Configure the maximum size for an incoming sub protoco
  • 使用 Java 在浏览器中下载 CSV 文件

    我正在尝试在 Web 应用程序上添加一个按钮 单击该按钮会下载一个 CSV 文件 该文件很小 大小仅约 4KB 我已经制作了按钮并附加了一个侦听器 文件也准备好了 我现在唯一需要做的就是创建单击按钮时下载 csv 文件的实际事件 假设 fi
  • 如何将 XMP XML 块序列化为现有的 JPEG 图像?

    我有许多 JPEG 图像 其中包含损坏的 XMP XML 块 我可以轻松修复这些块 但我不确定如何将 固定 数据写回图像文件 我目前正在使用 JAVA 但我愿意接受任何能让这项任务变得容易的事情 这是目标关于 XMP XML 的另一个问题
  • Java替换特定字符

    这是我在这个网站上的第一个问题 所以我会尽量不要成为一个十足的菜鸟 我目前正在用java 创建刽子手游戏 所以我问你的问题是我们是否被赋予了 幽灵 这个词 并将 Ghost 替换为 hiddenWord ghost length for i
  • 为什么我在 Mac 上看到“java.lang.reflect.InaccessibleObjectException: Unable to make private java.nio.DirectByteBuffer(long,int)accessibl

    我已经在工作中愉快地构建代码好几天了 但突然我的一个项目 不是全部 失败并出现此错误消息 看看下面的答案吧 我是如何修复它的 起初我用谷歌搜索 看到很多有这个问题的人正在使用 Java 16 但我认为 错误 我正在使用 Java 11 因为
  • 尝试在没有 GatewayIntent 的情况下访问消息内容

    我希望每当我写一条打招呼的消息时 机器人都会在控制台中响应一条消息 但它只是给我一个错误 JDA MainWS ReadThread WARN JDA Attempting to access message content without
  • tomcat 过滤所有 web 应用程序

    问题 我想对所有网络应用程序进行过滤 我创建了一个过滤器来监视对 apache tomcat 服务器的请求 举例来说 它称为 MyFilter 我在 netbeans 中创建了它 它创建了 2 个独立的目录 webpages contain
  • jmap - 组织和堆操作会给 jvm 带来开销吗?

    正如标题所述 需要多少开销jmap histo and jmap heap分别带到jvm 如果一个内存敏感的 Java 进程处于OutOfMemory 例如 大约 96 的堆已满 并且无法通过 full gc 清除 其中一项操作是否有可能将
  • 让JScrollPane控制多个组件

    对于我的应用程序 我正在设计一个脚本编辑器 目前我有一个JPanel其中包含另一个JPanel保存行号 位于左侧 以及JTextArea用于允许用户输入代码 位于右侧 目前 我已经实施了JScrollPane on the JTextAre
  • OpenJDK 版本控制

    上下文 我想确保我们系统上安装的 Java 不受 CVE 2022 21449 的影响 java version 给出 openjdk version 11 0 7 2020 04 14 LTS OpenJDK Runtime Enviro
  • 阻止 OSX 变音符号为所有用户禁用 Java 中的 KeyBindings?

    注 我知道这个问题 https stackoverflow com questions 40335285 java keybinds stop working after holding down a key用户必须输入终端命令才能解决此问
  • 来自客户端的超时 Web 服务调用

    我正在使用 RestEasy 客户端调用网络服务 一项要求是 如果调用运行时间超过 5 秒 则中止 超时调用 我如何使用 RestEasy 客户端实现这一目标 我只看到服务器端超时 即如果在一定时间内未完成请求 Rest Easy 网络服务
  • 我想要一个 Java 阿拉伯语词干分析器

    我正在寻找阿拉伯语的 Java 词干分析器 我找到了一个名为 AraMorph 的库 但它的输出是无法控制的 并且它会形成不需要的单词 还有其他阿拉伯语词干分析器吗 这是新的阿拉伯语词干分析器 Assem 的阿拉伯语轻词干分析器 http
  • Spock模拟inputStream导致无限循环

    我有一个代码 gridFSFile inputStream bytes 当我尝试这样测试时 given def inputStream Mock InputStream def gridFSDBFile Mock GridFSDBFile
  • Path2D 上的鼠标指针检测

    我构建了一个Path2D http docs oracle com javase 7 docs api java awt geom Path2D html表示由直线组成的未闭合形状 我希望能够检测何时单击鼠标并且鼠标指针靠近路径 在几个像素

随机推荐

  • retrofit应用详解与源码解析--奇技淫巧

    本文出自门心叼龙的博客 属于原创类容 未经允许 不得转载 本专栏的同步视频教程已经发布到CSDN学院 https edu csdn net course detail 30408 文章目录 请求超时设置 日志拦截器的设置 网络的缓存设置 自
  • linux shell中\w \s \d \b ^ $等常用匹配用法

    正则表达式 w s d b 用法 匹配除换行符以外的任意字符 w 匹配字母或数字或下划线 s 匹配任意的空白符 d 匹配数字 等价于 0 9 D 匹配非数字字符 b 匹配单词的开始或结束 匹配字符串的开始 匹配字符串的结束 其中 A Z 表
  • running beyond physical memory limits. Current usage: 2.0 GB of 2 GB physical memory used; 2.6 GB of

    昨天使用hadoop跑五一的数据 发现报错 Container pid 47660 containerID container 1453101066555 4130018 01 000067 is running beyond physic
  • starUML教程-用例图/类图

    用例图 也称为用户模型图 是从软件需求分析到最终实现的第一步 它是从客户的角度来描述系统功能 它包含3个基本组件 1 参与者 与系统打交道的人或使用该系统的人 2 用例 表示该系统的某项完整功能 3 关系 定义用例之间的关系 泛化关系 扩展
  • 蓝桥杯每日一题(12):猜年龄(小明)(python)

    Topic 来道简单的 小明带两个妹妹参加元宵灯会 别人问她们多大了 她们调皮地说 我们俩的年龄之积是年龄之和的6倍 小明又补充说 她们可不是双胞胎 年龄差肯定也不超过8岁啊 请你写出 小明的较小的妹妹的年龄 Solution 填空题以快为
  • 【web安全】——命令执行漏洞(RCE)详解

    作者名 Demo不是emo 主页面链接 主页传送门创作初心 舞台再大 你不上台 永远是观众 没人会关心你努不努力 摔的痛不痛 他们只会看你最后站在什么位置 然后羡慕或鄙夷座右铭 不要让时代的悲哀成为你的悲哀专研方向 网络安全 数据结构 每日
  • 华为OD机试 - 找出两个整数数组中同时出现的整数(Java)

    题目描述 现有两个整数数组 需要你找出两个数组中同时出现的整数 并按照如下要求输出 有同时出现的整数时 先按照同时出现次数 整数在两个数组中都出现并目出现次数较少的那个 进行归类 然后按照出现次数从小到大依次按行输出 没有同时出现的整数时
  • 区块链分布式存储

    想知道更多区块链技术知识 请百度 链客区块链技术问答社区 链客 有问必答 BAT垄断了互联网创业道路 DAPP成为创投界新趋势 区块链革命引领市场变天 区块链 创业当红 互联网 创业成为经典 Dapp 区块链 应用 将会如何改变我们的互联网
  • Nacos配置中心一直连接本地问题&解决

    最近使用写了一个微服务的demo 使用nacos做配置中心 项目启动我的nacos一直去连接本地 配置文件中也指定了nacos的地址 后来 也是查阅资料才得知 bootstrap yml bootstrap properties 用来在程序
  • Vue解决CDN引入的echarts,通过ajax异步请求的数据不能被正确渲染到视图层的问题

    在参加计算机设计大赛做作品的时候遇到的一个困难 花了挺长时间才解决 在这里做个记录 一 这里先介绍如何CDN引入ECharts 在需要用到ECharts的界面加入 即可 或者先下载好这个文件 src改为这个文件的相对路径 二 以南丁格尔玫瑰
  • 数据结构与算法分析--Java语言描述(第二章(1))

    习题2 8 假设需要生成前N个自然数的一个随机置换 例如 4 1 2 5 2 和 3 1 4 2 5 就是合法的置换 但 5 4 1 2 1 却不是 因为数1出现了两次而数 3 缺没有 这个程序常常用于模拟一些算法 我们假设存在一个随机数生
  • 最快可达 SwinIR 4倍的高效超分网络

    本文首发于 我爱计算机视觉 如需转载等事宜请联系我爱计算机视觉 作者单位 香港理工大学 OPPO 论文链接 https arxiv org abs 2203 06697 代码链接 https github com xindongzhang
  • 如何用NPM删除node_modules文件夹

    大家在日常的开发中相必都遇到过如何快速方便的删除node modules文件夹的问题 很明显如果用常规方式会很费时费力 这里教给大家一种快捷的方式 通过npm命令来删除node modules文件夹 首先通过npm安装删除工具 npm in
  • 10行代码实现Java文件大小格式化,支持GB、TB到YB可再扩展

    话不多说 直接上代码 自己实现的 private static String fileSizeToText Long size Double unit 1024D sizeUnit unit String sizes B KB MB GB
  • 字符串匹配算法总结

    http blog csdn net WINCOL article details 4795369 KMP虽然经典 但是理解起来极其复杂 好不容易理解好了 便起码来巨麻烦 老子就是今天图书馆在写了几个小时才勉强写了一个有bug的 效率不高的
  • L2TP/IPSEC搭建详细步骤

    背景 长沙分公司访问北京总公司的办公OA业务 目前的方法是通过在北京总公司出口防火墙上配置OA业务的端口映射 然后在长沙分公司通过输入北京总部给的域名带上映射的端口即可访问 但该访问过程经过公网 存在数据被截取的风险 当前北京总公司空闲一台
  • github前端插件大全

    常用的插件和库 2017年09月12日 11 42 08 阅读数 1300 本文整合罗列一些平时工作或者练手项目中很可能用到的 github上实用 轻量级 无依赖的插件和库 包括功能插件 UI组件 炫酷动画 前沿技术等 让你在少造轮子的同时
  • STM32/51单片机实训day6(二)——Proteus8.6版本+STM32F103驱动LCD128x64显示信息|Keil5程序设计|串行并行通信笔记

    目录 main c lcd c lcd h 内 容 实现LCD显示 学 时 4学时 知识点 LCD12864芯片介绍 读写操作时序 电路设计 重点 读写操作时序 难点 读写操作时序时间 2022年12月26日 13 30 16 20 总结
  • pb数据窗dw在某一列下怎么去掉重复值

    也就是PB数据窗怎么去掉某一列重复值 如显示结果如下 想到得到如下显示结果 怎么来做 其实吧 很简单 只需要打开数据窗对象 单击 rows 菜单 找到 Suppress Repeating Values 单击弹出如下窗口 把想要去掉重复的列
  • Java数组的应用——数组元素复制(34)

    数组元素的复制 数组元素复制的三种方法及例子 1 一个元素一个元素的复制 使用 号一个一个的赋值 将数组 a1 的元素一个一个的复制给另一个数组 a2 1 代码 方法一 赋值复制 用 System out println 第一种方法 int