【JavaSE篇】——数组练习

目录

🚩数组转字符串

🚩数组拷贝

🎈拷贝的实质

🎈copyOf方法(new)

🍭copyOf扩容 

🎈arraycopy方法(局部的拷贝)(系统类)

🎈copyOfRange方法(局部拷贝)

🎈原数组.clone()

🚩Arrays.fill

🚩Arrays.equal

🚩sort

❗总结


Java 中提供了 java.util.Arrays , 其中包含了一些操作数组的常用方法.

.Array;      操作数组相关的工具类. 


🚩数组转字符串

数组——>字符串 {1,2,3,4}——>[1,2,3,4],我们发现转换成字符串之后是这样的,这是java中自带的,我们可以自己去实现toString,toString是库函数里面的,我们可以自己实现一个。

    public  static  String   myString(int[] a){if(a==null)return null;String ret="[";for (int i = 0; i < a.length; i++) {if(i!=a.length-1){ret+=a[i]+",";}else {ret += a[i];}}ret+="]";return ret;}public static void main(String[] args) {//int[] a={1,2,3,4};// int[] a=null;int[] a={};String result=myString(a);System.out.println(result);}

🚩数组拷贝

🎈拷贝的实质

首先我们谈一谈什么是拷贝?——拷贝的前提是要有原内容产生一个一模一样的内容,叫做拷贝。

这算拷贝嘛?——不是,因为没有产生新的内存空间。

真正的拷贝是自己开辟一个和原数组一模一样的空间大小,然后将每个值依次拷贝进去,而不是没有开辟的新空间。

  public static void main(String[] args) {int[] array={1,2,3,4};//int [] array2=array;int[] array2=new int[array.length];for (int i = 0; i <array.length ; i++) {array2[i]=array[i];}System.out.println(Arrays.toString(array2));}

🎈copyOf方法(new)

java中不用自己手动实现数组的拷贝,它提供了一个copyOf方法。  

 copyOf方法在进行数组拷贝时,创建了一个新的数组 array2和array引用的不是同一个数组,我们可以ctrl+左鼠标键可以看到copyOf的底层代码,已经给copy这个数组进行开辟空间。

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

🍭copyOf扩容 


copyOf方法可以扩容,只不过新开辟的数组长度都默认初始化是0.


🎈arraycopy方法(局部的拷贝)(系统类)

这个方法的底层是无法看到的,由native修饰的方法底层是c/c++语言写的。(速度快)

前面从第几个位置开始拷贝,那么后面的拷贝长度就相应的减几。(从原数组的第二个位置拷贝到新数组的开始位置)——前2个拷贝不到。

(从原数组的开始位置拷贝到新数组的第二个位置)长度也得减2——只不过后俩个拷贝不到。


🎈copyOfRange方法(局部拷贝)


🎈原数组.clone()


🚩Arrays.fill

fill方法重载了很多类型,不止是int类型,可以让整个数组的值都改成一个值,也可以让数组中的一个区间改成某个值。


🚩Arrays.equal

返回类型是boolean类型的,要么true要么false,俩个数组相比较。


🚩sort

我们可以发现,java中从范围的改变都是左闭右开区间,我们给1-4位置排序,实则给1,2,3下标排序了。


❗总结


这是所有这个文章讲的内容。

我只是没读好书,走错一些路,但我并不是坏孩子。 

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

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

相关文章

竞赛练一练 第30期:GESP和电子学会相关题目练习

Day14&#xff1a;CIE一级2022.06_报时的公鸡 故事背景&#xff1a;公鸡在黎明时分会打鸣迎接太阳升起&#xff0c;古人也将鸡鸣声当做晨起的“闹钟”。 1. 准备工作 &#xff08;1&#xff09;背景&#xff1a;根据下图绘制两张背景&#xff1b; 01 02 &#xff08;2&…

代码随想录算法训练营Day42|0-1背包理论基础、416. 分割等和子集

目录 0-1背包理论基础 0-1背包问题 二维dp数组01背包 算法实现 一维dp数组01背包 ​编辑算法实现 416. 分割等和子集 前言 思路 算法实现 总结 0-1背包理论基础 0-1背包问题 题目链接https://kamacoder.com/problempage.php?pid1046 有n件物品…

【Javaweb程序设计】【C00162】基于SSM的儿童众筹救助系统(论文+PPT)

基于SSM的儿童众筹救助系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的儿童众筹救助系统 本系统分为登录模块、前台模块、管理员模块、用户模块以及发起人模块5个功能模块. 登录模块&#xff1a;这个功能模块用来让…

vs2019报错MSB4019 找不到导入的项目“BuildCustomizations\CUDA 9.2.props”

在VS中执行生成&#xff0c;报错如下&#xff1a;严重性 代码 说明 项目 文件 行 禁止显示状态 错误 MSB4019 找不到导入的项目“D:\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 9.2.props”。请确认 Import 声明“D:\Microso…

C++进阶(七)AVL树

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、AVL树的概念二、AVL树的旋转1、左单旋2、右单旋3、左右双旋4、右左双旋 三、AVL树的基本实…

SpringCloud--FeignGateWay

Feign 创建项目勾选web SpringWeb 1.0 创建生产者SpringCloudFeignProvider 端口号:8081 pom.xml引入依赖 <!--nacos依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery<…

C语言基础:写一个函数,输入一行字符,将此字符串最长的单词输出

方法一&#xff1a; #include<string.h> int find_longest(char line[])//把数组传过来 {int is_alphabetic(char word);int i 0;int length 0;//统计每个字符串的长度int max 0;//比max长就把值赋值给maxint place 0;//最长单词的起始位置int point;//每个字符串第…

JVM-字节码文件的组成

Java虚拟机的组成 Java虚拟机主要分为以下几个组成部分&#xff1a; 类加载子系统&#xff1a;核心组件类加载器&#xff0c;负责将字节码文件中的内容加载到内存中。 运行时数据区&#xff1a;JVM管理的内存&#xff0c;创建出来的对象、类的信息等等内容都会放在这块区域中。…

100.乐理基础-五线谱-是否需要学习五线谱

内容参考于&#xff1a;三分钟音乐社 上一个内容&#xff1a;99.乐理基础-简谱的多声部-CSDN博客 简谱与五线谱的区别&#xff0c;各自的优劣势、使用场景、范围等&#xff1a; 要搞懂这个问题&#xff0c;其实核心就是四个词&#xff1a;首调、固定调、单声部、多声部 首调、…

如何在Ubuntu安装配置SVN服务端并实现无公网ip访问内网资料库

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” 文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改au…

黑马程序员-瑞吉外卖-day5

修改实体类 package com.itheima.reggie.entity;import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode;i…

kali系统入侵电脑windows(win11系统)渗透测试,骇入电脑教学

本次渗透测试将使用kali虚拟机&#xff08;攻击机&#xff09;对本机&#xff08;靶机&#xff09;进行入侵并监控屏幕 声明&#xff1a;本篇仅仅是将本机作为靶机的一次简易渗透测试&#xff0c;实际情况中基本不可能出现如此简单的木马骇入&#xff08;往往在上传木马时就被防…

【Linux】第三十八站:信号处理

文章目录 一、信号处理二、再谈进程地址空间三、内核如何实现信号的捕捉四、sigaction 一、信号处理 我们知道&#xff0c;信号保存以后&#xff0c;会在合适的时候进行处理这个信号。 那么信号是如何被处理的&#xff1f;什么时候进行处理呢&#xff1f; 当我们的进程从内核…

破解Windows系统密码(保姆级教学)

前言: 本篇博客只是技术分享并非非法传播知识,实验内容均是在虚拟机中进行,并非真实环境 正文: 看到题目大家都已经晓得这篇博客是干嘛了,我也不废话了,直接上win7素材 需要windows10破解过程的关注后在下面评论"已关注,请私聊"我会私发给你 一.windows7电脑密码破解…

分布式空间索引了解与扩展

目录 一、空间索引快速理解 &#xff08;一&#xff09;区域编码 &#xff08;二&#xff09;区域编码检索 &#xff08;三&#xff09;Geohash 编码 &#xff08;四&#xff09;RTree及其变体 二、业内方案选取 三、分布式空间索引架构 &#xff08;一&#xff09;PG数…

DCNv4:对视觉应用的动态和稀疏算子的重新思考

摘要 https://arxiv.org/pdf/2401.06197.pdf 我们介绍了可变形卷积v4&#xff08;DCNv4&#xff09;&#xff0c;这是一种高效且有效的运算符&#xff0c;专为广泛的视觉应用而设计。DCNv4解决了其前身DCNv3的局限性&#xff0c;通过两个关键改进&#xff1a;1. 去除空间聚合中…

Springmvc-@RequestBody

SpringBoot-2.7.12 请求的body参数无法转换&#xff0c;服务端没有报错信息打印&#xff0c;而是响应的状态码是400 PostMapping("/static/user") public User userInfo(RequestBody(required false) User user){user.setAge(19);return user; }PostMapping("…

修复idea,eclipse ,clion控制台中文乱码

控制台乱码问题主要原因并不在编译器IDE身上&#xff0c;还主要是Windows的控制台默认编码问题。。。 Powershell&#xff0c;cmd等默认编码可能不是UTF-8&#xff0c;无需改动IDE的settings或者properties&#xff08;这治标不治本&#xff09;&#xff0c;直接让Windows系统…

小土堆pytorch学习笔记003 | 下载数据集dataset 及报错处理

目录 1、下载数据集 2、展示数据集里面的内容 3、DataLoader 的使用 例子&#xff1a; 结果展示&#xff1a; 1、下载数据集 # 数据集import torchvisiontrain_set torchvision.datasets.CIFAR10(root"./test10_dataset", trainTrue, downloadTrue) test_set …

uniapp,页面当有按钮的时候,可以做一个动态的效果

效果&#xff1a; 这个是当点着按钮的时候没有松开按钮的效果&#xff08;没有阴影&#xff09; 这个是当松开按钮的效果&#xff08;有阴影&#xff09; 原理讲解&#xff1a; 这段代码实现的业务逻辑是在一个Vue组件中控制“现金”按钮的阴影效果。具体来说&#xff0c;它通…