【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(),不要直接打印数组名。

相关推荐
一去不复返的通信er4 分钟前
力扣15:盛最多水的容器
算法·leetcode
Navigator_Z7 分钟前
LeetCode //C - 1309. Decrypt String from Alphabet to Integer Mapping
c语言·算法·leetcode
潇湘秦10 分钟前
SQL Server 2016+ 整数类型元数据扩宽(秒级变更)完整说明
数据库·算法
MetaLite16 分钟前
Spring Boot 加了 @Valid,嵌套参数为什么还没校验?
java·spring boot·后端
半杯咖啡半行码17 分钟前
QML与 Qt Quick入门实战:从零基础到 C++ 双向通信详解
java·qt·交互
霸道流氓气质24 分钟前
Lingua 语言检测库:n-gram 统计模型、置信度阈值调优与 Spring Boot 分层检测管道的生产级实战
java·spring boot·后端
文丑颜不良啊34 分钟前
LeetCode1281~1300题目解析
java·leetcode
missile11137 分钟前
# HDR 算法 ISP 通路客制化方案(G100 / mt6789)
java·前端·javascript
全栈陈序员1 小时前
【Python】基础语法入门(三十三)—— 日志系统详解:用 logging 记录程序运行
java·开发语言·python
她的男孩1 小时前
低代码加字段后表结构怎么同步:预览安全 DDL,高风险变更再强制执行
java·spring boot·低代码