java中的Arrays类

java.util.Arrays类

        java中的java.util.Arrays类是JDK提供的对数组进行操作的工具类,其中包含了数组的常规操作,有排序、填充、查找、打印等内容。

toString方法

        Arrays类里的toString方法是静态方法,能够通过类名.方法名的方式进行调用。这里要注意这个方法和Object类里的toString方法的区别,二者虽然名称相同,但是具体的用法是有区别的。Object类中的方法toString方法不是静态方法,没有形式参数,当调用时需要通过对象来进行访问调用。它的返回值类型为String,返回的值调用这个方法的对象所在的类名以及这个对象在堆空间中的地址值。Arrays类中的toString方法需要传入一个数组的值,返回值类型为引用类型,返回的就是传入数组的值,这里的值和通过for循环遍历数组打印出来的值不同,这里的值是用中括号([ ])括起来的,直观上更符合我们对数组的第一印象。

sort方法

        sort方法也是Arrays类中的静态方法,它也能过通过类名.方法名的方式进行调用。这个方法的作用为将数组中的元素按照数值的大小从小到大进行排序。这里要注意的是,这里的排序操作不是不是交换数组中索引的位置,而是交换数组中的元素的位置,当进行排序操作后,是将排序后的数组重新赋值给原数组了,所以排序前后同一个索引指向的元素的值不一定相同。并且排序操作并不局限于数字类型,Stringl类型的数据也可以进行排序,但是引用类型的数据,比如数组用这个方法是无法进行排序操作的。如果强制进行排序操作则会提示错误:ClassCastException。表示两个类型间的转换不兼容,无法进行排序中的比较操作。

binarySearch方法

        这个方法的调用与前两个方法一致,这个方法用来查找数组中特定元素的值,这里依然要强调的是,因为二维数组甚至多维数组目前暂时无法通过sort方法进行排序,而调用binarySearch方法的前提是必须对数组进行排序操作,因此默认此方法只能对一维数组生效。同时要知道,这个方法之所以要强调排序的原因是它的基层代码逻辑是二分法查找,而二分法查找必须序列进行排序操作。调用次方法查找数组中的某一个元素时,要传入数组名称以及要查找的数组的元素的值,当方法运行后会返回要查找的元素的值在数组中对应的索引,并且如果数组中存在多个同样的元素值,那么它只会返回最小的一个索引。

fill方法

        fill翻译为汉语的意思是填充、充满,因此这个方法的执行的结果又叫数组的填充,不过从它的执行结果上来看理解为替换也有可取之处。在这个方法中需要传入三个参数,具体表达为fill(要进行替换的数组名称,替换起始位置的索引,替换结束位置的索引,要替换成的元素)。这个方法的应用有两点需要注意,一是替换区间为: [替换起始位置的索引,替换结束位置的索引 )。可以发现这是一个前闭后开的区间,也就是说进行替换操作时替换结束位置的索引指向的元素不会被替换,简单概括就是这个方法“包前不包后”。其次还需要注意的是要替换的元素只能输入一个,不能输入好几个元素同时进行替换,比如想将数组d = {50,900,700,200,600,500,400,200}中索引为0和1的两个元素分别替换为100和600,那么就要调用两次fill方法,不能调用一簇方法指定替换区间为[0,3),要替换的对象为100,600。

演示代码

package cn.luoyusanshu.array;

import java.util.Arrays;

/**
 * 测试java.util.Arrays类
 * 这个类是java提供给我们操纵数组的工具类
 * 提供了常见的排序、查找、填充、打印数组内容的相关方法
 */
public class Test04 {

    public static void main(String[] args) {
        //测试打印
        int[] a = {100,200,300};
        System.out.println(Arrays.toString(a));
        //测试排序
        int[] b = {200,500,800,99,150,700,300};
        System.out.println(Arrays.toString(b));
        System.out.println("______________");
        String[] b1 = {"a","c","b"};
        Arrays.sort(b1);
        System.out.println(Arrays.toString(b1));
        System.out.println("________________");
        Arrays.sort(b);
        System.out.println(Arrays.toString(b));
        System.out.println("________________________");
        /*int[][] b2 = {a,b};
        Arrays.sort(b2);//引用类型无法进行排序
        System.out.println(Arrays.toString(b2));*/

        //测试二分法查找
        int[] c = {50,900,700,200,600,500,400,200} ;
        System.out.println(Arrays.toString(c));
        Arrays.sort(c);
        System.out.println(Arrays.toString(c));
        System.out.println("返回元素索引位置:"+Arrays.binarySearch(c,400));

        //测试填充
        int[] d = {50,900,700,200,600,500,400,200};
        System.out.println(Arrays.toString(d));
        Arrays.fill(d,1,3,100);
        System.out.println(Arrays.toString(d));

    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[Java基础揉碎]Math类

目录 基本介绍 方法一览(均为静态方法) 1) abs 绝对值 2) pow 求幂 3) ceil 向上取整 4) floor 向下取整 5) round 四舍五入 6) sqrt 求开方 7) random求随机数 8) max 求两个数的最大值 9) min 求两个数的最小值 基本介绍 Math类包含用于执行基本数学运算的方法&…

计算器(C语言)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 介绍关键代码运行代码(3种) 介绍 标准计数器:执行加减乘除等等科学计算器:执行分数、统计学、指数函数、对数、三角…

【机器学习300问】64、简写出常见的激活函数及其导数?

在机器学习特别是深度学习中,激活函数是用于增加模型的非线性特性。对于一个给定的输入信号,激活函数定义了输出信号的形式。以下是一些常见的激活函数及其导数: 一、Sigmoid函数 函数 导数 二、Tanh双曲正切函数 函数 导数 三、ReLU线性整…

通过本机调试远端路由器非直连路由

实验目的:如图拓扑,通过本机电脑发,telnet调试远程AR4设备。 重点1:通过ospf路由协议配置拓扑网络,知识点:ospf配置路由器协议语法格式,area区域的定义,区域内网络的配置&#xff0…

Jenkins使用-绑定域控与用户授权

一、Jenkins安装完成后,企业中使用,首先需要绑定域控以方便管理。 操作方法: 1、备份配置文件,防止域控绑定错误或授权策略选择不对,造成没办法登录,或登录后没有权限操作。 [roottest jenkins]# mkdir ba…

python--正则表达式,元字符,反义符,转义符,位数问题

正则表达式(regular expression): 为什么使用正则表达式: 在软件开发过程中,经常会涉及到大量的关键字等各种字符串的操作,使用正则表达式能很大程度的简化开发的复杂度和开发的效率,所以pytho…

YOLOV8注意力改进方法:DilateFormer多尺度空洞 Transformer(附改进代码)

原论文地址:原论文下载地址 即插即用的多尺度全局注意力机制 本文提出了一种新颖的多尺度空洞 Transformer,简称DilateFormer,以用于视觉识别任务。原有的 ViT 模型在计算复杂性和感受野大小之间的权衡上存在矛盾。众所周知,ViT 模型使用全局注意力机制,能够在任意图像块…

理解Go语言中上下文

开发人员有时会误解context.Context类型,尽管它是Go语言的关键概念之一,也是Go中并发代码的基础之一。接下来让我们看看这个概念,并确保我们理解为什么乃如何有效地使用它。 根据官方文档: 上下文(context)携带最后期限、取消信…

Flink WordCount实践

目录 前提条件 基本准备 批处理API实现WordCount 流处理API实现WordCount 数据源是文件 数据源是socket文本流 打包 提交到集群运行 命令行提交作业 Web UI提交作业 上传代码到gitee 前提条件 Windows安装好jdk8、Maven3、IDEA Linux安装好Flink集群,可…

GitHub 仓库 (repository) Watch - Star - Fork - Follow

GitHub 仓库 [repository] Watch - Star - Fork - Follow References 眼睛图标旁边写着 Watch 字样。点击这个按钮就可以 Watch 该仓库,今后该仓库的更新信息会显示在用户的公开活动中。Star 旁边的数字表示给这个仓库添加 Star 的人数。这个数越高,代表…

基于ubuntu22.04系统安装nvidia A100驱动与NVLink启用

1、官方仓库 针对驱动包下载认准nvidia官网 dpkg -i nvidia-driver-local-repo-ubuntu2204-550.54.15_1.0-1_amd64.deb apt update apt search nvidia-driver-5502、安装 根据步骤1apt search nvidia-driver-550查出版本:此驱动包封在nvidia-driver-local-repo-ub…

大语言模型的多模态应用(多模态大语言模型的相关应用)

探索大语言模型在多模态领域的相关研究思路

【黑马头条】-day07APP端文章搜索-ES-mongoDB

文章目录 今日内容1 搭建es环境1.1 拉取es镜像1.2 创建容器1.3 配置中文分词器ik1.4 测试 2 app文章搜索2.1 需求说明2.2 思路分析2.3 创建索引和映射2.3.1 PUT请求添加映射2.3.2 其他操作 2.4 初始化索引库数据2.4.1 导入es-init2.4.2 es-init配置2.4.3 导入数据2.4.4 查询已导…

idea中MySQL数据库的配置

在IntelliJ IDEA中配置数据库可以通过以下步骤进行: 打开IntelliJ IDEA,在菜单栏中选择"View" -> "Tool Windows" -> "Database",打开Database工具窗口。 在Database工具窗口上方,点击"…

springboot+vue2+elementui+mybatis- 批量导出导入

全部导出 批量导出 报错问题分析 经过排查,原因是因为在发起 axios 请求的时候,没有指定响应的数据类型(这里需要指定响应的数据类型为 blob 二进制文件) 当响应数据回来后,会执行 axios 后置拦截器的代码&#xff0…

相机模型浅析

相机模型 文章目录 相机模型四个坐标系针孔相机模型世界坐标系到相机坐标系相机坐标系到图像坐标系图像坐标到像素坐标 四个坐标系 ①世界坐标系:是客观三维世界的绝对坐标系,也称客观坐标系。因为数码相机安放在三维空间中,我们需要世界坐标…

主流排序简单集合

排序算法集合 选择排序 图解&#xff1a;以此类推直至 /*选择排序*/ void select_sort(vector<int>& nums) {/*选取一个基准元素逐个与后面的比较*/for (int i 0; i < nums.size() - 1-1; i) {int min i;/*定义随之变化的基准元素*/for (int j i 1; j <…

华为 2024 届校园招聘-硬件通⽤/单板开发——第一套(部分题目分享,完整版带答案,共十套)

华为 2024 届校园招聘-硬件通⽤/单板开发——第一套 部分题目分享&#xff0c;完整版带答案(有答案和解析&#xff0c;答案非官方&#xff0c;未仔细校正&#xff0c;仅供参考&#xff09;&#xff08;共十套&#xff09;获取&#xff08;WX:didadidadidida313&#xff0c;加我…

GEE:研究区(Polygon)样式设置

作者:CSDN @ _养乐多_ 本文将介绍在 Google Earth Engine (GEE)平台上为 polygon (面)数据设置样式的方法和代码,polygon 可以设置成任何颜色,以增加可视化效果更好理解数据分布。 结果如下图所示, 文章目录 一、统一样式1.1 示例代码1.2 示例代码链接二、根据区域名…

基于SpringBoot2.x、SpringCloud和SpringCloudAlibaba并采用前后端分离的企业级微服务多租户系统架构

简介 基于SpringBoot2.x、SpringCloud和SpringCloudAlibaba并采用前后端分离的企业级微服务多租户系统架构。并引入组件化的思想实现高内聚低耦合并且高度可配置化&#xff0c;适合学习和企业中使用。 真正实现了基于RBAC、jwt和oauth2的无状态统一权限认证的解决方案&#x…