【Java-Day18】API篇-Arrays

目录

一.Arrays

[二.Arrays 常用方法](#二.Arrays 常用方法)

三、toString:打印数组

四、sort:数组排序

五、binarySearch:二分查找

六、copyOf:拷贝数组

七、copyOfRange:拷贝指定范围

八、fill:填充数组

九、equals:比较数组内容

十、常见注意事项


一.Arrays

Arrays 是 Java 提供的数组工具类,所在包:import java.util.Arrays;

Arrays专门帮助我们操作数组, 比如打印数组、排序、查找、复制、比较、填充。

Arrays是工具类, 里面的方法大多是static, 所以不用创建对象,直接用类名调用:

java 复制代码
Arrays.toString(arr);
Arrays.sort(arr);

二.Arrays 常用方法

方法 作用
Arrays**.toString**(数组) 把数组转成字符串形式,方便打印
Arrays.sort(数组) 对数组排序
Arrays.binarySearch(数组, 元素) 二分查找元素
Arrays.copyOf(数组, 新长度) 拷贝数组
Arrays.copyOfRange(数组, 起始索引, 结束索引) 拷贝指定范围
Arrays.fill(数组, 值) 用指定值填充数组
Arrays.equals(数组1, 数组2) 比较两个数组内容是否相同

三、toString:打印数组

java 复制代码
int[] arr = {10, 20, 30};

// 把数组内容转换成字符串形式
System.out.println(Arrays.toString(arr));//[10, 20, 30]

四、sort:数组排序

注意:Arrays.sort(arr) 会直接修改原数组。

java 复制代码
int[] arr = {5, 2, 9, 1, 3};

// 默认从小到大排序
Arrays.sort(arr);

System.out.println(Arrays.toString(arr));//[1, 2, 3, 5, 9]

五、binarySearch:二分查找

注意:使用 binarySearch 前,数组必须是有序的。

java 复制代码
int[] arr = {10, 20, 30, 40, 50};
int index = Arrays.binarySearch(arr, 30);
System.out.println(index);//2

六、copyOf:拷贝数组

如果新长度比原数组长,后面补默认值。int 的默认值是 0。

java 复制代码
int[] arr = {10, 20, 30};
// 拷贝数组,新数组长度是 5
int[] newArr = Arrays.copyOf(arr, 5);

System.out.println(Arrays.toString(newArr));//[10, 20, 30, 0, 0]

七、copyOfRange:拷贝指定范围

索引取值包左不包右。

java 复制代码
int[] arr = {10, 20, 30, 40, 50};

// 从索引 1 开始,到索引 4 结束,但不包含 4
int[] newArr = Arrays.copyOfRange(arr, 1, 4);

System.out.println(Arrays.toString(newArr));//[20, 30, 40]

八、fill:填充数组

java 复制代码
int[] arr = new int[5];

// 把数组所有位置都填成 100
Arrays.fill(arr, 100);

System.out.println(Arrays.toString(arr));//[100, 100, 100, 100, 100]

九、equals:比较数组内容

数组不能直接用 == 比较内容。== 比较的是地址。

java 复制代码
int[] arr1 = {1, 2, 3};
int[] arr2 = {1, 2, 3};

System.out.println(Arrays.equals(arr1, arr2));//true

十、常见注意事项

1. Arrays 是工具类,不需要 new 对象。
2. 使用前需要导包:import java.util.Arrays;
3. sort 会修改原数组。
4. binarySearch 使用前,数组必须先排序。
5. copyOfRange 是包左不包右。
6. 数组比较内容用 Arrays.equals(),不要用 ==。
7. 打印数组内容用 Arrays.toString(),不要直接打印数组名。

相关推荐
风味蘑菇干1 小时前
数据流:
java
LiLiYuan.1 小时前
【happens-before 八大规则详解】
java·开发语言
吴可可1231 小时前
Curve.GetSplitCurves高效分割技巧
算法
小L写Java1 小时前
第六章:JVM 调优实战 —— GC日志分析、内存溢出排查与线上问题定位
java·jvm
SuniaWang1 小时前
《AgentX 专栏》08-工作流引擎:AgentWorkflow怎么把工具记忆流程串成一条流水线
java·ai·架构·langchain·工作流引擎·langgraph·agent架构
硅谷秋水2 小时前
Qwen-VLA:跨任务、环境与机器人形态的视觉-语言-动作统一建模
人工智能·深度学习·算法·计算机视觉·语言模型·机器人
SXJR2 小时前
langchain4j是如何保证tools或者funcation call不出错的
java·网络·数据库·ai·语言模型
子一!!2 小时前
spring基础学习
java·学习·spring