Java中Arrays类中的数组操作方法详解

2023-05-16

前言

我们讲到了一维数组和二维数组以及开发工具eclipse的配置

java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。

具有以下功能:

  • 替换元素以及填充元素:通过 fill 方法。
  • 对数组排序:通过 sort 方法,按升序。
  • 比较数组:通过 equals 方法比较数组中元素值是否相等。
  • 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。

Arrays类

Arrays类是 Java中用来操作数组 的模块他的使用方法是在Java类中使用 import java.util.Arrays 进行导入,并使用 Arrays.方法() 进行调用方法!

Arrays类的fill方法

fill方法有两种用途!

第一种就是填充数组,将数组中的全部元素转换为所输入的元素

第二种就是替换数组元素,将数组中某个元素进行单个替换

用fill方法填充数组

在初始化一个数组之后,如果没有给数组的元素赋值,那么这个数组中的 元素默认是为0 的,那么我们 一个个进行赋值又会略显麻烦,会堆积代码 !所以我们就需要用到 fill方法进行填充, 但是这么做 会让全部元素变成同一个数值!

<pre class="prettyprint hljs java" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">import java.util.Arrays;        //这里导入Arrays类
public class Fill{
    public static void main(String[] args){
        int[] mylist = new int[5];    //这里创建一个名称为mylist的数组,数组的元素个个数为5
        Arrays.fill(mylist,3);        //为数组填充3,格式为fill(列表,数值)
        for(int x:mylist){
            System.out.println(x);
        }                                //通过for each来遍历数组元素
    }
}

用fill方法替换数组元素

在给元素 赋值完或者是填充完元素 之后,如果想 对某个元素进行修改 ,那么我们就要 重新赋值或者是替换元素 ,但是 重新赋值会增加代码 ,让代码显得更繁琐,所以 Arrays类中提供了替换元素的方法fill!

<pre class="prettyprint hljs java" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">import java.util.Arrays;
public class Fill{
    public static void main(String[] args){
        int[] mylist = {1,2,3,4};
        Arrays.fill(mylist, 1,2,4);
        for(int x:mylist){
            System.out.println(x);
        }

    } //这是一个特殊的格式Arrays.fill(列表名称,空格正向索引,反向索引,改变的数值)

}

这里的正反向索引指向的一定要是同一个元素!

Arrays类的复制数组方法

在Java程序的使用过程中,有时候会需要一个 含有相同或者是部分相同元素的数组 ,但是 重新创建数组的话就会增加代码长度,减少代码可读性 ,那么我们就可以使用到 复制数组或者是部分数组的方法!

用copyOf复制数组

☄️copyOf方法提供了 多种重载的方法 , 用以复制数组,增加代码可读性 。该方法 不受数组长度的限制,若超出,则多处部分为0!

<pre class="prettyprint hljs cs" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">import java.util.Arrays;
public class Fill{
    public static void main(String[] args){
        int[] mylist = {1,2,3,4};
        int[] justlist = Arrays.copyOf(mylist,4);  //将复制后的数组赋值给justlist
        //格式Arrays.copyOf(列表,复制后的长度)
        for(int x:justlist){
            System.out.println(x);
            }
        System.out.println(mylist);
        System.out.println(justlist);        //这里输出两个数组的内存空间进行检查
        }

     //这是一个特殊的格式Arrays.fill(列表名称,空格正向索引,反向索引,改变的数值)

}

  

解:从以上结果可以看出 赋值成功了,并且内存空间不同 ( 下面我会解释为什么要输出内存空间 )

用copyOfRange方法复制部分数组

有时候在 编辑代码的时候只需要中间一部分代码 ,但是 copyOf方法只能复制以前面部分为开头的元素,而不能直接复制中间的代码 ,为了解决这一个问题,这个类提供了 另一个方法copyOfRange方法(中文意思:选择复制)利用这个方法就可以解决这一个问题 !

<pre class="prettyprint hljs java" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">import java.util.Arrays;
public class Fill{
    public static void main(String[] args){
        int[] mylist = {1,2,3,4};
        int[] justlist = Arrays.copyOfRange(mylist,1,3);
        //Arrays类的方法使用形式Arrays.copyOfRange(列表,第一个索引位置,第二个索引位置)
        for(int x:justlist){
            System.out.println(x);
        }
    }
}

注:在末尾有问题解答!

Arrays类对数组进行排序

在代码编译过程中,有时候会需要用到 有序的一组数组才能进行更好的操作 ,但是我们重新进行编译会增加代码数量,所以我们要对代码进行排序, Java中提供了sort方法对数组的元素进行升序排序!

用sort方法进行升序排序

在Java编译过程中, 有顺序的数组会让你的编译更加方便,使得你自己以及其他参与编译的人更加清楚,尤其是适合那些大基数的数组更为适用和实用 !

<pre class="prettyprint hljs java" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">import java.util.Arrays;
public class Fill{
    public static void main(String[] args){

        int[] mylist = {1,7,33,4};
        Arrays.sort(mylist);
        //方式为Arrays.sort(列表)
        for(int x:mylist){
            System.out.println(x);
        }
    }
}

问题解答

  • 为什么要在fill方法中加空格:因为不加空格就会使他执行不正确,无法达到效果
  • 为什么要输出内存空间吗:如果在同一个内存空间,一个数组改变之后另一个也会随之改变,会影响后续程序执行
  • copyOfRange方法如果超出索引最大限度会怎么样:如果超出,则超出部分默认为0!
  • 为什么有些要方法要创建新数组有些不用:因为有些方法是对一个数组进行改变,有些是要重新创建数组!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中Arrays类中的数组操作方法详解 的相关文章

  • ping不通Linux服务器的原因?

    ping命令是各种操作系统中经常会用到的一个网络命令 xff0c 也是一个通信协议 xff0c 主要用来测试目标主机的连通性 xff0c 检查网络是否连通 问题 xff1a 那ping不通Linux系统服务器是什么原因呢 xff1f 总结
  • RHCE第二天

    作业 xff1a 1 配置chrony时间服务器 xff0c 确保客户端主机能和服务主机同步时间 两台机器 第一台机器作为时间服务器从ntp aliyun com同步时间 xff08 注意包含意外情况 xff0c 如果不能上外网 xff0c
  • ubuntu20.04版本 安装ros1与px4、mavros、QGroundControl

    基于个人安装时的操作以及所浏览的链接 xff0c 仅供参考 文章目录 前言一 pandas是什么 xff1f 二 使用步骤 1 引入库2 读入数据总结 前言 使用ubuntu下载ros px4似乎是一件十分繁琐以及困难的事情 xff0c 但
  • 无用的知识--定时提醒(go语言小工具)

    遇到喜欢的事情总是欲罢不能 xff0c 一不小心就酿成了打错 xff0c 比如说在B站上学习 xff08 卷 xff09 过度 xff0c 错过了重要的事情 不用担心 xff0c 今天分享go语言写一个windows系统中定时提醒小工具 p
  • 重装Office后打开Powerpoint和excel提示找不到VCRUNTIME140_1.dll的解决办法(亲测成功,简单有效)

    1 下载VCRUNTIME140 1 dll xff08 可搜索下载途径 xff09 2 将其复制到OFFICE安装目录 xff0c 如下 C Program Files Microsoft Office16 3 再次打开即成功 xff01
  • ERROR:zygote_host_。。。。。Running as root without --no-sandbox is not supported.

    安装好google后 xff0c 在命令行输入google chrome后出现 xff0c ERROR zygote host impl linux cc 89 Running as root without no sandbox is n
  • 【IOT开发】蓝牙模块与PC连接通讯实验

    这是在一个项目中 xff0c 需要开发 windows APP xff0c 通过蓝牙与下位机通讯 之前接触过的一些蓝牙项目 xff0c 大多是 模块与模块 通讯 xff0c 也见过很多模块 手机通讯的教程 xff0c 但PC端直接与蓝牙模块
  • Linux安装JDK详细教程(附图)

    Linux安装JDK详细教程 xff08 图文教程 xff09 这里介绍两种方式 xff1a yum安装方式和手动安装 1 yum安装 1 1 查看JDK版本 xff0c 找到你想要安装的JDK版本 xff0c 这里以 JDK1 8 为例
  • AD布线后批量改线宽

    最近在学习AD画板 xff0c 打算布线结束后再改线宽 xff0c 遇到了一些问题 xff0c 经过网上的资料已经解决 首先 xff0c 右键空白处 xff0c 选择第一个 查找相似对象 然后用十字标选择想要更改的线 在弹出的框中更改 NE
  • 使用springboot启动类报错: 找不到或无法加载主类怎么解决?

    出现问题的原因是 xff1a 在使用springboot启动类时 xff0c 并没有写错代码和注解 xff0c 然后它还是报错找不或无法加载主类 解决此问题的办法 就是 xff0c 重新在项目结构中的Modules吧项目移除再次加载进了即可
  • 【iOS】---pthread,NSThread

    在iOS中多线程开发有四种方式 xff0c 在之前我们浅浅了解了一下GCD xff0c 这期来看看pthread和NSThread pehread pthread简介 pthread 是一套通用的多线程的 API xff0c 可以在Unix
  • 如何关闭windows11 Defender防火墙

    windows Defender是windows系统自带的防火墙 xff0c 但是由于它太过于敏感 xff0c 导致很多软件 xff0c 程序被误杀 一般默认开启时 xff0c Denfender防火墙拦截时会弹出提示 下面教大家如何关闭w
  • C++友元类和友元函数

    特点 xff1a 能访问私有成员 破坏封装性 友元关系不可传递 若B是A的友元 xff0c C是B的友元 xff0c 但C不一定是A的友元 xff0c 要看类中是否有申明 友元关系的单向性 若A是B的友元 xff0c 但B不一定是A的友元
  • windows和Ubuntu(linux操作系统)之间如何进行文件互传

    Windows和Ubuntu下的Linux操作系统之间的文件互传需要用到应用层的FTP协议 xff08 文件传输协议 xff09 xff0c 设置方法如下 xff1a 1 xff1a 打开Ubuntu下的Linux操作系统的FTP服务 打开
  • 有网但浏览器不显示网页如何解决

    如果网络没有问题 xff0c 但是浏览器显示不了网页 xff0c 首先考虑是不是DNS出了问题 xff0c 导致域名解析失败 如何解决呢 xff1f 1 打开控制面板 xff0c 打开所有控制面板 找到网络和共享中心 2 找到Interne
  • pycharm下的vc2没有代码提示(不用改文件)

    我第一次遇到cv2没有代码提示的时候也是一脸懵逼 xff0c 在网上搜索了各种解决办法 包括但不限于修改 init py文件 xff0c 复制文件 xff0c 降低opencv的版本等 xff0c 都没有用 但是最后还是参考网上建议以及自己
  • delete和delete[]的区别

    对于简单类型 简单类型像 int char int long struct等 由于对象是没有析构函数的 所以delete和delete 是一样的 int arr 61 new int 10 delete arr delete arr 两种方
  • Result Maps collection already contains value for…BaseResultMap

    异常信息 Result Maps collection already contains value for BaseResultMap 假如使用generatorSqlmapCustom逆向工程生成代码 xff0c 即生成dao文件和ma
  • Debian 11 软件最大化占不满屏幕

    原来是自己不知何时手长把 Workspace margin 给设置了 xff0c 导致软件最大会占不满全屏 就是设置 gt Workspace gt margins 把 17 改成 0 就好了 曾一度难受的想重装系统 xff0c 原来是这么
  • static静态成员

    静态成员包括 xff1a 静态成员变量和静态成员函数 一 静态成员变量 静态成员变量的特点 所有对象都共享一份数据 编译阶段就分配内存 只能在类内声明 xff0c 类外初始化 静态成员变量也是有访问权限的 1 验证 所有对象都共享一份数据

随机推荐

  • matlab如何删除矩阵某行或列?

    要删除矩阵某一行或某一列 xff0c 只需要将某一行或某一列赋予一个空矩阵即可 例如 xff1a clc clear close all x 61 eye 4 先创建一个4 4矩阵 xff1a x 61 eye 4 xff0c 得到 之后输
  • Excel导出 POI 响应头设置 Content-Type: application/vnd.ms-excel 异常解决方法

    386条消息 Excel导出 POI 响应头设置 Content Type application vnd ms excel 异常解决方法 刘涛 的博客 CSDN博客 application vnd ms excel charset 61
  • Android音视频技术之MediaPlayer视频窗口尺寸适配

    作者 xff1a JulyYu 前言 使用MediaPlayer播放能力后再视频播放上还有一个问题需要解决 xff0c 那就是适配尺寸适配 默认情况使用SurfaceView播放视频可能会出现视频被拉伸或是压缩的情况 MediaPlayer
  • Linux系统中管理文件的五个关键命令

    1 mkdir 创建目录 xff1a 此命令可以创建一个或多个目录或子目录 但是 xff0c 当目录已经存在或者在不存在的目录中创建子目录 xff0c mkdir命令就会失败并出现错误 mkdir p命令将会为子目录创建缺失的父目录 2 c
  • Linux——总复习1

    1 要注意自己处于当前那个目录位置 2 将file1的前五行 后三行重定向 附加到file2 输出重定向 head 5 file1 gt file2 tail 3 file1 gt gt file2 3 ls与cat区别 ls 列出目录的目
  • Linux——运行基本容器

    1 安装容器管理 使用yum命令安装container tools模块 包括工具podman和skopeo yum module install container tools 2 选择容器镜像和注册表 xff08 1 xff09 容器注册
  • Linux——查找并管理容器镜像

    1 配置容器注册表 xff08 1 xff09 posman使用主机系统上的registries conf文件来获取有关它可以使用的容器注册表的信息 文件中 registries insecure 部分中列出了不安全的注册表 xff08 2
  • Linux——RHEL8的启动过程

    xff08 1 xff09 接通电源 xff0c 系统固件运行开机自检 xff0c 并初始化部分硬件 xff08 2 xff09 系统固件搜索可启动设备 xff08 3 xff09 系统固件从磁盘读取启动加载器 xff0c 将系统控制权交给
  • Ansible——介绍ansible

    1 什么是ansible xff1f ansible是一款开源自动化平台 xff0c 基于python开发 xff0c 可以多节点发布 远程任务执行的自动化引擎 xff0c 可以实现批量系统配置 批量程序部署 批量运行命令等 2 ansib
  • WSL2 Ubuntu Can‘t open display解决方法

    使用MobaXterm开启Ubuntu后 xff0c ncview打开文件时报错 xff1a MoTTY X11 proxy Unsupported authorisation protocol Error Can 39 t open di
  • Ansible——部署ansible

    1 ansible清单 清单 xff1a 定义ansible将要管理的一批主机 xff0c 可以通过在静态文本文件中定义或外部来源获取信息的脚本来动态确定 xff0c 因此 xff0c 分为静态主机清单 xff08 包括INI或YAML样式
  • nltk安装出错,nltk_data语料库下载

    首先 xff0c 安装nltk要有nltk库和nltk数据包 xff0c 下载方法网上也很全面 但本文是在在使用nltk中的语料库omw 1 4 主要用于词性还原 xff0c 无法找到对应文件 环境 xff1a pycharm 3 1 An
  • Ubuntu ver.22.04.2 root用户登录

    ps xff1a 因为站内的多种方法需要的文件 xff0c 我的白板机没有 xff0c 于是提供下自己的解决思路 补充 xff1a 一种可能的方法 xff1a 打开终端 xff0c 键入sudo i 回车 xff0c 并输入当前账户的密码
  • go语言中time包基础内容

    目录 一 介绍简单的几个时间UTC CST CDT 二 获取时间的函数 三 时间的加 减 等 四 判断两时间发生前后 五 周期性定时器 time Tick 时间间隔 六 时间也有格式化 七 时间字符串格式的解析 八 时区 xff08 tim
  • 一,HTML&CSS

    一个网页是由三部分组成 xff0c 分别是 xff1a 结构 xff1a 对应的是 HTML 语言表现 xff1a 对应的是 CSS 语言行为 xff1a 对应的是 JavaScript 语言 1 HTML 1 xff09 文件结构 xff
  • centos7学习笔记:开启虚拟机黑屏

    问题 xff1a centos7开机进入到登录界面黑屏 xff0c 无法登陆到图形化界面 因为我自己之前出现过一次这种情况 xff0c 上一次删除了 xff0c 但又出现这种问题了 xff0c 所以打算记录下来 xff0c 最后其实是做了个
  • windows修改cmd终端样式

    一下为我的终端样式 xff08 有点丑 xff09 修改这个其实很简单 首先 win 43 r 输入 regedit 在上面搜索 计算机 HKEY LOCAL MACHINE SOFTWARE Microsoft Command Proce
  • SpringCloud ---启动顺序

    1 启动Eureka服务模块 2 启动Eureka客户端被调用者模块 3 最后启动Eureka调用者模块
  • Zabbix6.0LTS安装流程

    安装环境选择 xff1a eSXI6 7 43 CentOS8 43 Zabbix6 0LTS 43 MySQL 43 Apache zabbix官方网站 xff1a 下载Zabbix 1 打开命令行控制台 xff08 ctrl 43 al
  • Java中Arrays类中的数组操作方法详解

    前言 我们讲到了一维数组和二维数组以及开发工具eclipse的配置 java util Arrays 类能方便地操作数组 xff0c 它提供的所有方法都是静态的 具有以下功能 xff1a 替换元素以及填充元素 xff1a 通过 fill 方