Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java从一个数组指定位置拷贝到另外一个数组的指定位置-新法

Java从一个数组指定位置拷贝到另外一个数组的指定位置-新法

作者头像
明明如月学长
发布于 2021-08-27 08:12:12
发布于 2021-08-27 08:12:12
7000
举报

数据结构实用教程(Java语言描述)》 徐孝凯 编著

清华大学出版社

有一段这样的代码:

在idea里面 我们发现 for这里有一些小问题:

根据提示我们发现可以通过 System.arraycopy() 方法来替换这个for循环。

不过这个方法放在System这个类下,多少还有些奇怪。

我们先看下文档:

意思是:从源数组的指定开始角标位置,拷贝到目标数组指定位置。

src - 源数组

srcPos - 源数组的开始位置

dest - 目标数组

destPos -目标数组的开始位置

length - 数组元素拷贝的数量

看一个简单的例子:

运行结果为: 12de

我们对原书代码改成为:

经过运行发现效果是一样的。

你可能会奇怪为啥自己复制到自己会不会被覆盖呢?

我们去看下源码,上面有详细的注释:

上面说 如果源数组和目标数组引用的是一个数组的话,就会借助临时数组进行处理。

这样我们就一目了然了。

虽然很简单。

但是一方面说明idea非常强大,

其次关于JDK的方法,如果有疑问尽量去看源码去分析。

另外一方面我们适当接触一下新的方法,不要总墨守成规,对IDE提示视而不见。

我们在写代码的时候建议多看idea给的提示,有一些不规范或者有更好的方法,Idea会给出建议。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/11/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数组拷贝或克隆?看这篇全面解决方案
今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。
喵手
2024/01/22
2860
数组拷贝或克隆?看这篇全面解决方案
java数组的四种拷贝方式
源码分析forclone()System.arraycopy()Arrays.copyof()
用户7886150
2021/04/21
4340
数组的常用操作
1.for循环方法: 代码灵活,但效率低。就是用一个for循环进行元素的逐个拷贝,进行深拷贝或者浅复制这个大家可以自己把握。
用户5224393
2019/08/20
4630
数组的常用操作
关于System.arraycopy方法的使用
在对数组进复制时,我们可以编写一个for循环实现,但是比较麻烦,我们可以使用System类的静态方法arraycopy()。
全栈程序员站长
2022/11/17
3290
JDK1.8源码(四)——java.util.Arrays 类
  java.util.Arrays 类是 JDK 提供的一个工具类,用来处理数组的各种方法,而且每个方法基本上都是静态方法,能直接通过类名Arrays调用。 1、asList public static <T> List<T> asList(T... a) { return new ArrayList<>(a); }   作用是返回由指定数组支持的固定大小列表。   注意:这个方法返回的 ArrayList 不是我们常用的集合类 java.util.ArrayList。这里
IT可乐
2018/03/30
8230
JDK1.8源码(四)——java.util.Arrays 类
Java基础系列(四十四):集合之ArrayList
ArrayList与Vector非常相似,他们都是基于数组实现的集合,都可以动态扩容,只不过Vector是同步的,所需的资源较多,而且比较老,有一些缺点,所以我们现在更多的是去使用ArrayList,而不是Vector。下面,我们在阅读源码的过程中遇到的一些问题对ArrayList进行分析。
山禾说
2019/01/21
4450
Java数组使用&练习(完)
这个方法如果是被native所修饰,这个就是底层使用的C/C++实现的,这个优点就是速度很快;
阑梦清川
2025/02/24
630
Java数组使用&练习(完)
一次搞定:Java中数组拷贝VS数组克隆
今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。
喵手
2024/01/25
2730
一次搞定:Java中数组拷贝VS数组克隆
哭了,史上最详细的手写ArrayList教程,适合Java新人
ArrayList是一种变长的数组,它比数组来的更强大,你不需要考虑数组的下标是否会超出范围的问题。
剽悍一小兔
2021/04/13
7620
哭了,史上最详细的手写ArrayList教程,适合Java新人
掌握Java编程的关键:深入解析System类,有两下子!
咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~
bug菌
2024/07/04
4490
掌握Java编程的关键:深入解析System类,有两下子!
「拷」贝之道:Java数组拷贝的几种方法,有两下子!
咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~
bug菌
2024/08/13
960
「拷」贝之道:Java数组拷贝的几种方法,有两下子!
一次ArrayList的使用不当导致线上jstorm任务启动失败的案例
最近一次的的项目版本迭代中,我们的jstorm项目里面增加了一些新的功能,开发完毕后,按照正常的上线流程,代码是需要在开发,测试和预发布环境,测试完毕后才能上线。 这次上新版本也不例外,在所有的环境都测试之后并无任何问题,然后由OP上线,结果发布失败。
我是攻城师
2018/12/25
1.4K0
Java容器源码攻坚战--第二战:ArrayList
基于java10.1 零、前言 如果想读读源码测试功力,或读读源码修养身心,或读读源码满足自虐倾向,我建议第一个类是:ArrayList 第一、常用----所以用法比较熟悉,看完源码你也会更明白如何去用 第二、相对简单----1595行代码,刨去注释的一大堆也没有太多,还是hold的住的 总得来说ArrayList源码最主要的是对System.arraycopy的理解,很多操作都是基于此 void arraycopy( Object src, //源数组 i
张风捷特烈
2018/10/08
6760
Java容器源码攻坚战--第二战:ArrayList
Java数据结构和算法(1)--自定义一个数组类和动态数组类
前言 今天就要离校了,大学生涯也走到了尽头。肯定有很多不舍,不舍的是学校的安逸和美丽的女友。同时也对自己的未来充满着信心,希望自己能够强大起来,保护自己想要保护的人。之前一段时间,在掘金上面看到一篇文章,文章提到了一个思想:学会编程,而不是学会Java,文中提到了自定义一个模仿ArrayList的类,要去实现其中的add,get,remove等方法。同时正好我之前也在看《Java数据结构和算法》这本书,文中第二章也详细讲解了数组,所以自己也动手完成了自定义一个数组内和动态数组类,于是乎就有了这篇文章去温故而
用户2032165
2018/06/05
1.1K0
Java程序性能优化之编程技巧总结
程序的性能受代码质量的直接影响。在本文中,主要介绍一些代码编写的小技巧和惯例,这些技巧有助于在代码级别上提升系统性能。
lyb-geek
2018/12/20
5220
Java程序性能优化之编程技巧总结
初探Java源码之ArrayList
在我们的日常开发中,集合类是我们基本上每个人都会用经常用到的东西,用着用着,突然有一天我心生好奇,那么java集合类的这些源码是什么呢?那么我打算接下来一个一个的查看一些常用的类源码争取达到心中有数的水平~~本文源码均来自Java 8
Java后端技术
2018/08/09
4960
初探Java源码之ArrayList
面经手册 · 第7篇《ArrayList也这么多知识?一个指定位置插入就把谢飞机面晕了!》
说到数据结构基本包括;数组、链表、队列、红黑树等,但当你看到这些数据结构以及想到自己平时的开发,似乎并没有用到过。那么为什么还要学习数据结构?
小傅哥
2020/08/28
3840
面经手册 · 第7篇《ArrayList也这么多知识?一个指定位置插入就把谢飞机面晕了!》
JAVA 用数组实现 ArrayList
该文章是一个关于Java实现的ArrayList的总结,讲述了如何用数组实现一个ArrayList,以及如何向ArrayList中添加和删除元素,还介绍了如何查找ArrayList中的元素以及遍历ArrayList中的元素。
IT可乐
2018/01/04
1.1K0
【干货】用大白话聊聊JavaSE — ArrayList 深入剖析和Java基础知识详解(二)1. 新建一个MyList类2. 构造函数设计3. add方法实现4. remove方法实现
在上一节中,我们简单阐述了Java的一些基础知识,比如多态,接口的实现等。 然后,演示了ArrayList的几个基本方法。 ArrayList是一个集合框架,它的底层其实就是一个数组,这一点,官方文档已经说得很清楚了。 作为一个容器,ArrayList有添加元素,删除元素,以及获取元素的方法。 本节我们先不看ArrayLis底层的源码,而是按照平常的思路来模拟一下ArrayList的具体实现。看看如果我们自己来写的话,会怎么实现ArrayList的功能? 1. 新建一个MyList类 好的,我们来模拟一下A
剽悍一小兔
2018/05/17
7990
ArrayList 源码解析,炒鸡详细!!!
ArrayList是Java集合框架中非常常用的一种数据结构。继承自AbstractList,实现了List接口。底层基于数组来实现动态容量大小的控制,允许null值的存在。同时还实现了RandomAccess、Cloneable、Serializable接口,支持快速访问、复制、序列化操作。
终码一生
2022/04/14
2120
ArrayList 源码解析,炒鸡详细!!!
推荐阅读
相关推荐
数组拷贝或克隆?看这篇全面解决方案
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档