当前位置: 首页 > news >正文

关于java数组Arrays类

关于java数组Arrays类

前面的文章中,我们了解了数组创建方法等,我们本篇文章来了解一下数组的方法类Arrays,有了这个类,我们在日常写代码的时候就不不用自己去手动创建方法了😀。

Arrays类

  • 数组的工具类java.util.Arrays
  • 由于数组对象本身没有什么方法可以提供给我们调用,但是API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。
  • 查看JDK帮助文档🤔也可以来了解Arrays类。
  • Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接用类名+点+方法名进行调用。
  • 不用使用对象来调用。

Arrays常见功能

  • 数组的输出方法
  • Arrays.toString(数组名字);

我们之前学习到的打印数组方法是这样的,自己定义一个方法,然后打印出数组中的元素。

public class Demo
{public static void main(String[] args){int[] a = {1,2,3,4,5};printArrays(a);}public static void printArrays(int[] array){for(int i = 0; i<array.length;i++){System.out.print(array[i]+"\t");}}
}

我们执行一下输出的结果。

1 2 3 4 5进程结束......

我们正常输出一下a。

public class Demo
{public static void main(String[] args){int[] a = {1,2,3,4,5};System.out.print(a);}
}

我们执行一下输出的结果,会发现输出的是对象。

[I@1b6d3586进程结束......

我们来使用Arrays输出一下。

import java.util.Arrays;//使用的时候自动生成导入的类public class Demo
{public static void main(String[] args){int[] a = {1,2,3,4,5};System.out.print(Arrays.toString(a));//Arrays.方法}
}

我们执行一下输出的结果。

[1,2,3,4,5]进程结束......

这种方法是,将数组转为字符串的方法,我们也可以自己去创作一下自己的方法,可以实现相同的功能。

public class Demo
{public static void main(String[] args){int[] a = {1,2,3,4,5};printArrays(a);}public static void printArrays(int[] array){for(int i = 0; i<array.length;i++){if(i==0)//如果是0,输出[{System.out.print("[");}if(i==array.length-1)//如果是最后一个输出最后一个的元素加上]{System.out.print(array[i]+"]");}else{System.out.print(array[i]+", ");//逗号间隔}}}
}

我们执行一下输出的结果,发现和上面的结果是一样的😀。

[1,2,3,4,5]进程结束......

但是我们要避免自己创建重复的方法,因为这个方法是开发的时候开发者编写的,所以我们没有必要去重复编写相同功能的代码,直接拿过来用就可以了,这里只是让大家了解一下我们也可以自己模仿创建方法。

我们来看一下toString这个方法,开发者是如何编写的🤔

按住Ctrl键,然后点击toString就可以跳转到源码页面。

public static String toString(int[] a) {if (a == null)return "null";int iMax = a.length - 1;if (iMax == -1)return "[]";StringBuilder b = new StringBuilder();b.append('[');for (int i = 0; ; i++) {b.append(a[i]);if (i == iMax)return b.append(']').toString();b.append(", ");}}

我们可以看到底层的代码是这个样子的,当然很多东西对于我们现在来说比较陌生,我们往后会一点点去深入这些方法具体的实现逻辑😀但是和我们刚刚自己写的代码原理是比较相似的。

  • 数组的排序方法
  • Arrays.sort(数组名字);

我们重新定义一个数组,然后用排序的方法实现排序。

import java.util.Arrays;public class Demo
{public static void main(String[] args){int[] a = {1,88,3,66,5};Arrays.sort(a);}
}

我们执行一下输出的结果,可以看到数组已经排序完成了,这比我们之前写的反转数组的方法要简单许多😀。

反转数组

[1,3,5,66,88]进程结束.......

我们可以看一下这个方法的源码。

public static void sort(int[] a) {DualPivotQuicksort.sort(a, 0, a.length - 1, null, 0, 0);}

这里一样也是不需要看懂,就是简单了解一下就好。

  • 数值的填充
  • Arrays.fill(数组名+区间+赋值);

public class Demo
{public static void main(String[] args){int[] a = {10,20,30,40,50};Arrays.fill(a,2,4,0);//将2和4中间的数替换为0 2和4代表下标,不是数字2和4}
}

我们执行一下输出的结果。

[10, 20, 0, 0, 50]进程结束.......

我们可以看一下这个方法的源码。

 public static void fill(int[] a, int fromIndex, int toIndex, int val){rangeCheck(a.length, fromIndex, toIndex);//fromIndex是从哪个索引开始 toIndex是到哪个索引结束for (int i = fromIndex; i < toIndex; i++)a[i] = val;}

以上就是常见的Arrays类中的方法,当然还有很多很多方法,大家可以看一下JDK帮助文档,或者Idea进入这个类查看一下结构😀

相关文章:

关于java数组Arrays类

关于java数组Arrays类 前面的文章中&#xff0c;我们了解了数组创建方法等&#xff0c;我们本篇文章来了解一下数组的方法类Arrays&#xff0c;有了这个类&#xff0c;我们在日常写代码的时候就不不用自己去手动创建方法了&#x1f600;。 Arrays类 数组的工具类java.util.A…...

LeetCode-58/709

1.最后一个单词的长度&#xff08;58&#xff09; 题目描述&#xff1a; 给你一个字符串 s&#xff0c;由若干单词组成&#xff0c;单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 思路&…...

linux 流量监控

linux 流量监控 Linux 网络流量监控利器 iftop命令详解及实战 https://blog.csdn.net/qq_50247813/article/details/134164093 iftop命令详解 https://www.cnblogs.com/gaoyuechen/p/17300017.html 1 ubuntu如何查看流量监控 Ubuntu是一种非常流行的Linux发行版&#xff0c…...

AUTOSAR从入门到精通-漫谈autosar软件架构(八)

目录 前言 原理 AUTOSAR的方法论 AUTOSAR架构的优点 AUTOSAR 软件架构 1.应用层...

C#设计模式之单例模式

介绍 单例模式&#xff08;Singleton&#xff09;保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。 单例模式的结构图如下所示&#xff1a; 使用单例模式的原因 对一些类来说&#xff0c;只有一个实例是很重要的。如何才能保证一个类只有一个实例并且这个…...

【源码预备】Calcite基础知识与概念:关系代数概念、查询优化、sql关键字执行顺序以及calcite基础概念

文章目录 一. 关系代数的基本知识二. 查询优化三. SQL语句的解析顺序1. FROM2. WHERE3. GROUP BY4. HAVING5. SELECT 四. Apache Calcite中的基本概念1. Adapter2. Calcite中的关系表达式2.1. 关系表达式例子2.2. 源码底层结构 3. Calcite的优化规则4. Calcite的Trait--算子物理…...

【Java 设计模式】23 种设计模式

文章目录 设计模式是什么计算机行业里的设计模式创建型模式&#xff08;共 5 种&#xff09;结构型模式&#xff08;共 7 种&#xff09;行为型模式&#xff08;共 11 种&#xff09; 总结 设计模式是什么 “每一个模式描述了一个在我们周围不断重复发生的问题&#xff0c;以及…...

ElasticSearch深度分页解决方案

一、前言 ElasticSearch是一个基于Lucene的搜索引擎&#xff0c;它支持复杂的全文搜索和实时数据分析。在实际应用中&#xff0c;我们经常需要对大量数据进行分页查询&#xff0c;但是传统的分页方式在处理大量数据时会遇到性能瓶颈。本文将介绍ElasticSearch分页工作原理、深…...

nginx下upstream模块详解

目录 一&#xff1a;介绍 二&#xff1a;特性介绍 一&#xff1a;介绍 Nginx的upstream模块用于定义后端服务器组&#xff0c;以及与这些服务器进行通信的方式。它是Nginx负载均衡功能的核心部分&#xff0c;允许将请求转发到多个后端服务器&#xff0c;并平衡负载。 在upst…...

基于ssm的双减后初小教育课外学习生活活动平台的设计与实现论文

双减后初小教育课外学习生活活动平台的设计与实现 摘 要 当下&#xff0c;正处于信息化的时代&#xff0c;许多行业顺应时代的变化&#xff0c;结合使用计算机技术向数字化、信息化建设迈进。以前学校对于课外学习活动信息的管理和控制&#xff0c;采用人工登记的方式保存相关…...

wblogic中间件配置数据源

配置数据源 1.服务-数据源-配置-新建 2.单机选一般数据源 3.选择源名称、jndi名称、数据库类型 4.选择驱动 5.下一步 6.输入连接串信息 参考&#xff1a; 格式二&#xff1a;jdbc:oracle:thin:<host>:<port>:<SID> 数据库名称配置的sid 7.测试配置&#xff…...

Java数据结构之装箱拆箱

装箱和拆箱 也叫装包拆包&#xff0c;装包是把那八种基本数据类型转换为它的包装类&#xff0c;拆包则相反 上面这俩种方式都是装包&#xff0c;下面是它的字节码文件 用到了Integer的ValueOf方法&#xff1a; 就是返回了一个Integer类的对象&#xff0c;把它的value属性设置成…...

各版本 操作系统 对 .NET Framework 与 .NET Core 支持

有两种类型的受支持版本&#xff1a;长期支持 (LTS) 版本和标准期限支持 (STS) 版本。 所有版本的质量都是一样的。 唯一的区别是支持的时间长短。 LTS 版本可获得为期三年的免费支持和补丁。 STS 版本可获得 18 个月的免费支持和修补程序。 有关详细信息&#xff0c;请参阅 .N…...

Golang 线程安全与 sync.Map

前言 线程安全通常是指在并发环境下&#xff0c;共享资源的访问被适当地管理&#xff0c;以防止竞争条件&#xff08;race conditions&#xff09;导致的数据不一致 Go语言中的线程安全可以通过多种方式实现 实现方式 互斥锁&#xff08;Mutexes&#xff09; Go的sync包提供…...

1.2 Hadoop概述

小肥柴的Hadoop之旅 1.2 Hadoop概述 目录1.2 Hadoop概述1.2.1 回归问题1.2.2 Google的三篇论文1.2.3 Hadoop的诞生过程1.2.4 Hadoop特点简介 参考文献和资料 ) 目录 1.2 Hadoop概述 1.2.1 回归问题 通过前一篇帖子的介绍&#xff0c;特别是问题思考部分的说明&#xff0c;我…...

Adams许可管理安全控制策略

随着全球信息化的快速发展&#xff0c;信息安全和许可管理问题日益凸显。在这场无形的挑战中&#xff0c;Adams许可管理安全控制策略以其卓越的性能和可靠性&#xff0c;引领着解决这类问题的新潮流。 Adams许可管理安全控制策略是一种全方位、多层次的安全控制方案&#xff0…...

无人地磅系统|内蒙古中兴首创无人地磅和远程高效管理的突破

走进标杆企业&#xff0c;感受名企力量&#xff0c;探寻学习优秀企业领先之道。 本期要跟砼行们推介的标杆企业是内蒙古赤峰市砼行业的龙头企业&#xff1a;赤峰中兴首创混凝土搅拌有限责任公司&#xff08;以下简称为中兴首创&#xff09;。 中兴首创成立于2011年初&#xff…...

【SpringCloud】7、Spring Cloud Gateway限流配置

1、限流介绍 Spring Cloud Gateway 的限流配置主要涉及到令牌桶算法的实现。令牌桶算法可以对某一时间窗口内的请求数进行限制,保持系统的可用性和稳定性,防止因流量暴增而导致的系统运行缓慢或宕机。 在 Spring Cloud Gateway 中,官方提供了 RequestRateLimiterGatewayFi…...

【gRPC学习】使用go学习gRPC

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 RPC是远程调用,而google实现了grpc比较方便地实现了远程调用,gRPC是一个现代的开源远程过程调用(RPC)框架 概念介绍 在gRPC中&#xff0c;客户端应用程序可以直接调用另一台计算机上的服务器应用程序上的方法&#…...

C语言中常用的字符串函数(strlen、sizeof、sscanf、sprintf、strcpy)

C语言中常用的字符串函数 文章目录 C语言中常用的字符串函数1 strlen函数2 sizeof函数2.1 sizeof介绍2.2 sizeof用法 3 sscanf函数3.1 sscanf介绍3.2 sscanf用法3.3 sscanf高级用法 4 sprintf函数4.1 背景4.2 sprintf用法 5 strcpy函数5.1 strcpy介绍5.1 strcpy用法 1 strlen函…...

别再只靠EWSA了!聊聊WPA密码破解的几种姿势与效率对比

WPA密码破解工具全维度评测&#xff1a;从EWSA到Hashcat的实战指南 在无线安全评估领域&#xff0c;WPA/WPA2密码破解始终是绕不开的技术课题。当安全研究员获得合法授权的握手包后&#xff0c;如何高效完成密码恢复任务&#xff1f;市面上既有EWSA这样的老牌图形化工具&#x…...

TlbbGmTool:从数据库小白到《天龙八部》单机版管理大师的蜕变之旅

TlbbGmTool&#xff1a;从数据库小白到《天龙八部》单机版管理大师的蜕变之旅 【免费下载链接】TlbbGmTool 某网络游戏的单机版本GM工具 项目地址: https://gitcode.com/gh_mirrors/tl/TlbbGmTool 你是否曾经面对《天龙八部》单机版数据库的复杂结构感到无从下手&#x…...

从波形到Mel谱图:机器学习音频特征提取的完整实践指南

1. 音频信号处理基础&#xff1a;从物理世界到数字信号 第一次接触音频信号处理时&#xff0c;我被那一串串看似随机的波形数据弄得一头雾水。直到后来才明白&#xff0c;这些数字背后其实对应着我们熟悉的物理现象——声音。声音的本质是空气压力的变化&#xff0c;就像水面泛…...

Android HWASan 详解:硬件标记原理、Clang 启用与排障实践

Android HWASan 详解&#xff1a;硬件标记原理、Clang 启用与排障实践 HWASan&#xff08;Hardware-assisted AddressSanitizer&#xff09;是面向 AArch64 的一类 Native&#xff08;C/C&#xff09;内存错误检测机制&#xff1a;利用指针与内存区域上的 短标签&#xff08;T…...

5步掌握Betaflight 2025升级:从配置到飞行的完整解决方案

5步掌握Betaflight 2025升级&#xff1a;从配置到飞行的完整解决方案 【免费下载链接】betaflight Open Source Flight Controller Firmware 项目地址: https://gitcode.com/gh_mirrors/be/betaflight 还在为穿越机飞行抖动和信号不稳定而烦恼吗&#xff1f;Betaflight …...

MentalLLaMA:基于指令微调的可解释心理健康分析大模型实践

1. 项目概述&#xff1a;MentalLLaMA——一个面向社交媒体心理健康分析的指令微调大语言模型 如果你正在关注大语言模型在垂直领域的应用&#xff0c;特别是如何让AI模型在理解人类复杂情感和心理状态时&#xff0c;不仅能“判断”&#xff0c;还能“解释”&#xff0c;那么这个…...

25GbE以太网:数据中心服务器接入的技术革命与演进逻辑

1. 项目概述&#xff1a;25GbE的诞生与数据中心变革如果你在2014年前后关注数据中心网络&#xff0c;可能会觉得以太网速率的发展路径有点“拧巴”。我们刚刚习惯了从1G到10G的十倍跨越&#xff0c;紧接着迎来的却是40G和100G。对于服务器接入来说&#xff0c;40G&#xff08;4…...

如何快速解锁网易云音乐NCM格式:ncmdumpGUI完整免费解决方案指南

如何快速解锁网易云音乐NCM格式&#xff1a;ncmdumpGUI完整免费解决方案指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经遇到过这样的困扰&…...

告别黑盒:手把手调试MTK Camera HAL3日志,定位拍照卡顿与预览异常

告别黑盒&#xff1a;手把手调试MTK Camera HAL3日志&#xff0c;定位拍照卡顿与预览异常 在移动影像开发领域&#xff0c;MTK平台的Camera HAL3层问题排查常被开发者视为"黑盒操作"。当用户反馈"拍照延迟明显"或"预览画面卡顿"时&#xff0c;缺…...

[MTCNN]2. 级联卷积神经网络样本工程与偏移量奥秘

1. 为什么样本工程是MTCNN成功的关键 在计算机视觉领域&#xff0c;数据质量往往比算法本身更重要。MTCNN作为经典的人脸检测算法&#xff0c;其成功很大程度上依赖于精心设计的样本工程。我曾在多个实际项目中验证过&#xff0c;同样的网络结构&#xff0c;使用不同质量的训练…...