You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何验证两个值分别存在于两个同长度ArrayList的同一索引位置

解决思路与代码实现

嘿,我来帮你搞定这个验证手机号和对应PIN码的问题!你的需求很明确:检查指定手机号是否在phNumbers里,存在的话拿它的索引,再验证pinNumbers对应位置的PIN码是否匹配对吧?先说说你那段代码的问题,再给你两种靠谱的实现方式。

原代码的问题

你写的index1 = phNumbers.indexOf(i)完全搞错了逻辑——indexOf()的参数应该是你要找的目标手机号,而不是循环变量i,这会导致你根本找不到正确的索引。另外代码也没写完,逻辑不完整。

实现方式一:用indexOf快速定位(简洁版)

这种方式适合只需要验证匹配的场景,代码更简洁:

// 定义你要验证的目标手机号和PIN码
String targetPhone = "13800138000";
String targetPin = "1234";

// 获取目标手机号在phNumbers中的索引
int phoneIndex = phNumbers.indexOf(targetPhone);

boolean isMatch = false;
// 先判断手机号是否存在,再检查对应PIN码
if (phoneIndex != -1) {
    // 题目说两个集合元素数量相同,这里可以直接用索引取PIN码
    isMatch = targetPin.equals(pinNumbers.get(phoneIndex));
}

// 输出验证结果
if (isMatch) {
    System.out.println("手机号与PIN码匹配成功!");
} else {
    System.out.println("手机号不存在或PIN码不匹配!");
}

实现方式二:循环遍历(适合需额外处理的场景)

如果你需要在遍历过程中做其他操作(比如记录日志、处理异常),可以用循环遍历的方式:

String targetPhone = "13800138000";
String targetPin = "1234";
boolean isMatch = false;

// 遍历集合(因两个集合元素数量相同,直接遍历phNumbers的长度即可)
for (int i = 0; i < phNumbers.size(); i++) {
    // 找到目标手机号
    if (phNumbers.get(i).equals(targetPhone)) {
        // 验证对应位置的PIN码
        if (pinNumbers.get(i).equals(targetPin)) {
            isMatch = true;
        }
        // 找到后直接跳出循环,避免无效遍历
        break;
    }
}

// 结果处理
System.out.println(isMatch ? "匹配成功" : "匹配失败");

关键注意点

  • 用equals()比较字符串内容:如果你存的手机号和PIN是字符串类型,一定要用equals()而不是==——==比较的是对象引用,不是实际内容。
  • 处理索引不存在的情况:indexOf()返回-1时,说明目标手机号不在集合里,直接判定不匹配。
  • 安全性:虽然题目说两个集合元素数量相同,但实际开发中可以加上phoneIndex < pinNumbers.size()的判断,防止意外越界。

内容的提问来源于stack exchange,提问作者Bl3akMirai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:10:27