真正有意义的 Java 数组方法

发布: (2026年3月4日 GMT+8 17:03)
4 分钟阅读
原文: Dev.to

Source: Dev.to

数组一开始真的让人感到困惑。概念本身——存储多个值——没问题。但各种实用方法分散在不同的类里?这花了点时间才弄明白。

你需要了解的两个类

大多数数组工具方法都在 java.util.Arrays 中——需要导入它。

如果要进行大小调整和动态操作,ArrayList 是你的好帮手(但那是另一个话题)。

import java.util.Arrays;

数组工具方法

Arrays.sort()

按升序对数组进行排序。适用于数字和字符串。

int[] nums = {5, 2, 8, 1, 9};
Arrays.sort(nums);
// nums 现在是 {1, 2, 5, 8, 9}

Arrays.toString()

调试时很有用。打印数组内容而不是内存地址。

int[] nums = {1, 2, 3};
System.out.println(nums);                     // [I@6d06d69c  ← 没用
System.out.println(Arrays.toString(nums));   // [1, 2, 3]   ← 有用

Arrays.fill()

用单一值填充所有元素。用于初始化很方便。

int[] grid = new int[5];
Arrays.fill(grid, 0);
// {0, 0, 0, 0, 0}

Arrays.copyOf()

将数组复制到一个新数组。复制时还能改变大小。

int[] original = {1, 2, 3, 4, 5};
int[] copy = Arrays.copyOf(original, 3);
// copy = {1, 2, 3}

Arrays.copyOfRange()

复制数组的特定片段。

int[] nums = {10, 20, 30, 40, 50};
int[] slice = Arrays.copyOfRange(nums, 1, 4);
// slice = {20, 30, 40}

Arrays.equals()

检查两个数组的值是否相同且顺序一致。

int[] a = {1, 2, 3};
int[] b = {1, 2, 3};

System.out.println(a == b);                 // false(不同对象)
System.out.println(Arrays.equals(a, b));    // true ✅

和字符串的教训一样——永远不要用 == 来比较数组。

Arrays.binarySearch()

在已排序的数组中搜索某个值并返回其索引。先对数组排序,否则结果不可预测。

int[] nums = {1, 3, 5, 7, 9};
int index = Arrays.binarySearch(nums, 5);
// index = 2

array.length

这不是方法,而是属性。到处都可以使用。

int[] nums = {4, 8, 15, 16, 23};
System.out.println(nums.length); // 5

没有括号——只写 .length,而不是 .length()

快速参考

方法功能说明
Arrays.sort()升序排序
Arrays.toString()可读格式打印
Arrays.fill()设置所有值
Arrays.copyOf()复制(可调整大小)
Arrays.copyOfRange()复制切片
Arrays.equals()比较两个数组
Arrays.binarySearch()查找值的索引
.length获取数组大小

需要记住的一点

Java 中的数组是 固定大小 的——创建后不能添加或删除元素。如果需要可变大小的列表,请使用 ArrayList

// 固定大小——不能增长
int[] arr = new int[5];

// 灵活——可以增删
ArrayList list = new ArrayList<>();

这又是另一个完整的主题了 😄

有问题或想让我接下来讲 ArrayList 吗?在下方留言吧!

祝编码愉快 🙌

0 浏览
Back to Blog

相关文章

阅读更多 »