Arrays工具类——常用方法

news/2024/12/20 5:48:04/

Arrays工具类

它是Java API文档已经给我们提供好的一个现成类,对于我们来说直接使用即可
在以后开发过程中,就2种情况:
1.自己写类,自己写方法,自己写实现……【累】
2.别人已经给你写好了,直接拿过来用就可以了……【简单】

Arrays类常用方法

方法一

java">static String toString(int[] a) 返回指定数组的内容的字符串表示,就是把数组内容转为字符串格式,原封不动的打印出来(返回类型Stringpublic class Xx {public static void main(String[] args) {int[] a = {1,22,3,4,55,16};System.out.println(a);//[I@4eec7777String string = Arrays.toString(a);System.out.println(string);//[1, 22, 3, 4, 55, 16]}
}

方法二

java">static void sort(int[] a) 按照数字顺序排列指定的数组,就是对数组进行自然排序(自然排序:从小到大排序)【无返回不能变量接收也不能直接打印】public class Xx {public static void main(String[] args) {int[] a = {1,22,3,4,55,16};System.out.println(a);//[I@4eec7777Arrays.sort(a);String string = Arrays.toString(a);System.out.println(string);//[1, 3, 4, 16, 22, 55]}
}

方法三

java">static void fill(int[] a, int val)  将val的值填充a数组中的每个元素public class Xx {public static void main(String[] args) {int[] a = {1,22,3,4,55,16};System.out.println(a);//[I@4eec7777Arrays.fill(a,10);String string = Arrays.toString(a);System.out.println(string);//[10, 10, 10, 10, 10, 10]}
}

方法四

java">static int binarySearch(int[] a, int key) 使用二叉搜索算法搜索指定的int数组的指定值【就是查询key在a数组中存在的索引位置】
使用二叉搜索的前提:必须是排序的,否则无效搜索:A、自然排序(从小到大)B、二叉搜索(去中间值那个)适用场景:A、数据量小,自然排序快B、数据量大,二叉搜索快public class Xx {public static void main(String[] args) {int[] a = {1,22,3,4,55,16};System.out.println(a);//[I@4eec7777Arrays.sort(a);//先排序int i = Arrays.binarySearch(a, 4);//key是排序之后查找的值索引,有返回值类型System.out.println("key的索引位置:"+i);//[10, 10, 10, 10, 10, 10]}
}

方法五

java">static int[] copyOf(int[] original, int newLength)  数组的扩容和缩容的方法【复制粘贴】扩容:如果newLength大于original数组的长度,就是扩容,扩容后original数组所有的元素都已经复制到新数组中,没赋到值的0补充缩容:如果newLength小于original数组的长度,就是缩容,缩容后original数组中的元素从前往后复制到新数组中,直到到达newLengt的长度限制public class Xx {public static void main(String[] args) {int[] a = {1,22,3,4,55,16};System.out.println(a);//[I@4eec7777int[] ints1 = Arrays.copyOf(a, 8);//扩容int[] ints2 = Arrays.copyOf(a, 3);//缩容System.out.println(Arrays.toString(ints1));//[1, 22, 3, 4, 55, 16, 0, 0]System.out.println(Arrays.toString(ints2));//[1, 22, 3]}
}
操作之后都是新地址了

方法六

java">static int[] copyOfRange(int[] original, int from, int to) 将指定数组的指定范围[from,to]复制到新数组中 注意:from给定的值不能大于或者等于to;否则大于之后报错,等于之后只打印出一个中括号public class Xx {public static void main(String[] args) {int[] a = {1, 22, 3, 4, 55, 16};System.out.println(a);//[I@4eec7777int[] ints = Arrays.copyOfRange(a, 2, 5);System.out.println(Arrays.toString(ints));//[3, 4, 55]}
}
操作之后都是新地址了

既然是别人写好的工具类,如何调用?

类名.方法名(); //对于工具类的方法,大多都是这样调用(用static修饰的方法都可以类点方法)

建议:对于API文档真实开发中遇到需要查哪一个类或哪些工具类、所有的方法……可直接百度

可变参数

就形参列表里面它能接收0个或者n个参数

语法格式:数据类型… 变量名

java">例:
public class xx {public static void main(String[] args) {add();add(1);add(1,2,3,4);//……,方法里面的参数能接收0个或者n个参数}public static void add(int... age) {System.out.println(age.length);}
}		

可变参数的注意事项:
A、1个方法中最多只能有1个可变参数
B、可变参数必须放到形参列表末尾

其实可变参数本质就是一个数组

jd-gui工具

把字节码文件翻译成Java文件(反编译)

java">把上面可变参数例子的class文件进行反编译效果:
import java.io.PrintStream;
public class xx
{public static void main(String[] args){add(new int[0]);//与上区别add(new int[] { 1 });//与上区别add(new int[] { 1, 2, 3, 4 });//与上区别}public static void add(int[] age) {//与上区别System.out.println(age.length);}
}

http://www.ppmy.cn/news/1556579.html

相关文章

嵌入式单片机中对应GPIO外设详解实现

一、GPIO外设详解 大家可以看到,函数库开发的时候外设的使用流程都是一样的,接下来就讲解一下细节。 l定义一个外设的结构体变量 变量命名规则 PPP_InitTypeDef PPP_InitStructure; 每个外设都有对应的结构体,结构体的定义一般都是存放在每个外设的头文件内,比如GPIO外…

杨振宁大学物理视频中黄色的字,c#写程序去掉(原版改进,三)

上一节,我们分清了主次矛盾,并搞定了主要矛盾(去掉黄色的字),这一节解决次要矛盾(矩形色带)。 我们的想法如图: 1,我们找到稳定黄色的最左边,最右边两点&…

CentOS7超详细安装教程

资料提供 VMware虚拟机下载 通过百度网盘分享的文件:VMware-workstation-full-17.5.2 个人免费... 链接:百度网盘 请输入提取码 提取码:6666 CentOS7镜像 镜像下载网址centos-7-isos-x86_64安装包下载_开源镜像站-阿里云 选择图下版本即…

AI前沿测评:Kimi上线视觉思考k1模型,多模态更上一层楼?

名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼 Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、Kimi k1 背后的技术创新二、Kimi k1:技术迭代与升级三、Kimi k1 的实际应用场景四、Kimi k1…

glTF格式:WebGL应用的3D资产优化解决方案

摘要 glTF作为一种高效的3D资产格式,为WebGL、OpenGL ES和OpenGL运行时的应用提供了强有力的支持。它不仅简化了3D模型的传输与加载流程,还通过优化资产大小,使得打包、解包更加便捷。本文将深入探讨glTF格式的优势,并提供实用的代…

LLM大语言模型私有化部署-OpenEuler22.03SP3上容器化部署Dify与Qwen2.5

背景 Dify 是一款开源的大语言模型(LLM) 应用开发平台。其直观的界面结合了 AI 工作流、 RAG 管道、 Agent 、模型管理、可观测性功能等,让您可以快速从原型到生产。相比 LangChain 这类有着锤子、钉子的工具箱开发库, Dify 提供了更接近生产需要的完整…

探索 Python 条件语句:单分支选择结构与双分支选择结构

​​各类资料学习下载合集 https://pan.quark.cn/s/8c91ccb5a474​​ 在编程中,条件语句是控制程序执行流程的重要工具。Python 提供了丰富的条件语句以处理不同的逻辑分支。本文将详细讲解单分支选择结构的条件表达式和双分支选择结构中的三元运算符,并结合代码案例帮助…

Layer Norm 如何处理不同长度的句子样本(含 Padding):中英双语

中文版 Layer Norm 如何处理不同长度的句子样本(含 Padding) 在 NLP 任务中,句子的长度往往不同。为了能够进行批处理,通常需要将不同长度的句子通过 Padding 补齐到相同的长度。对于这种场景,Layer Normalization&a…