【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&…

python 获取未提前定义的属性报错 KeyError

python 获取未提前定义的属性报错 正文 最近用python编写了一个脚本&#xff0c;是对象形式的数据结构。发现python中对于没有定义的属性名&#xff0c;直接用中括号获取会报错。这一点有别于js。简单记录一下啊具体情况如下&#xff1a; obj {"a": 1,"b&qu…

代码随想录算法训练营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;这个功能模块用来让…

如何让haproxy不命中已经失效的服务器

最近在做负载均衡时&#xff0c;服务总是不稳定&#xff0c;经过日志分析&#xff0c;发现是haproxy负载代理时&#xff0c;命中了已经失效的服务节点。那么如何让haproxy不命中已经失效的服务器呢&#xff1f; 你可以配置服务器的健康检查&#xff08;Health Check&#xff09…

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树的基本实…

jszip和pizzip中文乱码的解决方案

jszip中文乱码的解决方案 jszip官方文档地址&#xff1a;https://stuk.github.io/jszip/ 1、问题分析 在JavaScript中需要用到对Zip压缩包进行操作时&#xff0c;我们往往会使用jszip对压缩包进行编辑。 但是&#xff0c;当我们使用jszip来读取包含中文名的文件时&#xff…

使用ollama本地跑大模型

大家好,我是邵奈一,一个不务正业的程序猿、正儿八经的斜杠青年。 1、世人称我为:被代码耽误的诗人、没天赋的书法家、五音不全的歌手、专业跑龙套演员、不合格的运动员… 2、这几年,我整理了很多IT技术相关的教程给大家,爱生活、爱分享。 3、如果您觉得文章有用,请收藏,…

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…

TypeScript(二) 基础类型

1. typescript的基础类型 数据类型关键字描述任意类型any生命any的变量可以赋值任意类型的值数字类型number整数或分数字符串类型string使用单引号&#xff08;‘’&#xff09;或者双引号&#xff08;“”&#xff09;来表示字符串类型。反引号&#xff08;&#xff09;来定义…

前端 HTML 知识点之 HTML 介绍

1.1 HTML 1.1.1 定义 超文本标记语言&#xff08;英语&#xff1a;HyperTextMarkupLanguage&#xff0c;简称&#xff1a;HTML&#xff09;是一种用于创建网页的标准标记语言 HTML元素是构建网站的基石 标记语言&#xff08;markup language &#xff09; 由无数个标记&#…

黑马程序员-瑞吉外卖-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电脑密码破解…