Java中查找数组指定元素的核心思路是遍历比对,常用for循环(可获索引,适合需位置操作)和增强for循环(简洁,仅需值);for循环推荐用Objects.equals防null,未找到返回-1。

Java 中用循环查找数组中的指定元素,核心思路是遍历数组每个位置,逐个比对是否等于目标值。最常用的是 for 循环 和 增强 for 循环(for-each),两者适用场景略有不同。
用普通 for 循环查找(推荐:可获取索引)
适合需要知道元素位置(下标)的场景,比如要删除、替换或记录位置。
- 通过
i从0遍历到arr.length - 1 - 每次比较
arr[i] == target(基本类型)或Objects.equals(arr[i], target)(引用类型,防 null) - 找到就可立即
break或返回索引;遍历完没找到通常返回-1
int[] nums = {3, 7, 1, 9, 5};
int target = 9;
int index = -1;
for (int i = 0; i < nums.length; i++) {
if (nums[i] == target) {
index = i;
break;
}
}
// index = 3用增强 for 循环查找(简洁,但无索引)
代码更简洁,适合只需判断“是否存在”或“获取元素本身”的情况。
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
- 无法直接获得当前下标,如需索引不建议用此方式
- 配合布尔变量标记是否找到,或用 return 提前退出(在方法内)
- 对引用类型仍建议用
Objects.equals()比较
String[] names = {"Alice", "Bob", "Charlie"};
String target = "Bob";
boolean found = false;
for (String name : names) {
if (Objects.equals(name, target)) {
found = true;
break;
}
}
// found = true查找多个匹配项(不止第一个)
如果数组中可能有重复元素,且需要所有匹配位置,就不要 break,改用集合收集索引。
立即学习“Java免费学习笔记(深入)”;
- 声明
List<integer> indices = new ArrayList();</integer> - 在 for 循环中,每次匹配都执行
indices.add(i); - 最后可遍历
indices或直接返回该列表
小提醒:注意 null 和类型安全
对对象数组(如 String[]),直接用 == 可能出错(比较引用而非内容),且 target 或数组元素可能为 null。
- 统一用
java.util.Objects.equals(a, b)—— 它内部已处理 null - 基本类型数组(
int[],double[]等)可用==,但注意浮点数慎用精确相等 - 若用
Arrays.asList(arr)转成 List 再调contains(),仅对引用类型有效,且int[]会变成含一个 int[] 元素的列表,不是预期效果

















