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

相关推荐
凤凰院凶涛QAQ1 小时前
《Java版数据结构 & 集合类剖析》栈与队列:“push/pop 是栈的灵魂,offer/poll 是队列的骨架——四组 API,两种人生”
java·开发语言·数据结构
科技大视界1 小时前
投资AI项目,传统尽调不够用了——李章虎律师拆解算法、数据、算力三大雷区
人工智能·算法·数据挖掘
郝学胜-神的一滴2 小时前
算法实战:最小k个数——大顶堆的优雅解法
开发语言·数据结构·c++·python·程序人生·算法·排序算法
Irissgwe2 小时前
算法滑动窗口
数据结构·算法
掘金_答案2 小时前
上线那天,一个 ConcurrentHashMap 差点送走我的 AI 客服——3 天排查 JVM 血泪史
java·后端·架构
怪兽学LLM2 小时前
LeetCode 105. 从前序与中序遍历序列构造二叉树:分治递归思路详解
算法·leetcode·职场和发展
可编程芯片开发2 小时前
基于PI控制的三相整流器控制系统的simulink建模与仿真,包含超级电容充电和电机
算法
猿与禅2 小时前
CosId 分布式 ID 生成器完全教程:从架构原理到生产落地
java·shardingsphere·雪花算法·分布式id·高性能·cosid·号段模式
酿情师2 小时前
区块链共识算法深度拆解:PoW、PoS、PBFT、Raft 原理解析
算法·区块链·共识算法
MindUp2 小时前
企业网盘权限模型解析:多层级访问控制与审计能力选型指南
java·linux·运维