【问题标题】:Verify two values are contained in separate arraylists at the same index验证两个值是否包含在同一索引处的不同数组列表中
【发布时间】:2018-04-03 09:12:18
【问题描述】:

我有两个 ArrayList:phNumbers 和 pinNumbers。两者都具有相同数量的元素。我正在尝试检查给定值是否在第一个 phNumbers 中,如果是,则在 phNumbers ArrayList 的哪个索引处找到该值。然后,我希望检查第二个值是否在先前确定的索引处的 pinNums ArrayList 中。

这是我目前的代码:

for(int i = 0; i < phNumbers.size() && i < pinNums.size(); i++){
    index1 = phNumbers.indexOf(i);
    index2 = phNumbers.indexOf(i);
    index3 = pinNums.indexOf(i);
    if(phNumbers.get(i).equals(details[1].trim()) && pinNums.get(index1+1).equals(details[2].trim())){
        //send response1
    }
    else if(phNumbers.get(i).equals(details[1].trim()) && !pinNums.get(index2+1).equals(details[2].trim())){
        //send response2
    }
    else if(pinNums.get(i).equals(details[2].trim()) && !phNumbers.get(index3+1).equals(details[1].trim())){
        //Send response3
    }
    else{
        //send response4
    }
}

我遇到的问题是它不适用于第一个以外的任何元素,所以我假设这是我的 for 循环的问题。有人可以提供一些帮助吗?

【问题讨论】:

  • 请提供一个完整的例子。 phNumberspinNums 是什么? details 是什么?你确定phNumbers.indexOf(i) 是你想要做的吗?你调试过你的代码吗?如果不是,为什么不呢?如果是,哪里出错了?
  • 您的代码和问题不正确...请尝试详细说明
  • @MaxVollmer 我在我的问题中解释了 phNumbers 和 pinNums 是 ArrayLists。详细信息只是我为获取值而拆分的字符串。据我所知,indexOf() 方法返回值所在的索引。
  • ArrayList 是原始类型。你使用原始的ArrayLists 吗?如果是,不要。如果没有,你还没有回答我的问题。再次:请使用Minimal, Complete, and Verifiable example 更新您的问题。

标签: java for-loop arraylist


【解决方案1】:

所以,首先如果你有一个 phNumber 数组列表和一个 phnumber 字符串,那么试试这个

 ArrayList<String> phNumbers = new ArrayList<>();
        phNumbers.add("aaa");
        phNumbers.add("bbb");
        phNumbers.add("ccc");
        phNumbers.add("ddd");
        ArrayList<String> pinNums = new ArrayList<>();
        pinNums.add("ddd");
        pinNums.add("bbb");
        pinNums.add("ccc");
        pinNums.add("aaa");
        for (int i = 0; i < phNumbers.size(); i++) {
            for (int j = i; j < pinNums.size(); j++) {
                if (phNumbers.get(i).equalsIgnoreCase(pinNums.get(j))) {
                    Log.e("mye", "phone number and pin number match on this index" + i + "for phnumber and index " + j + "for pin number");
                }
            }
        }

如果你想在某个时间点后中断,那么你需要中断 for 循环。 没关系还是你想要别的?

【讨论】:

  • 我需要确保这些值在 ArrayList 中的索引相同。例如:ArrayList1 first value = Tim and ArrayList2 first value is 45. contains 方法只会告诉我这些值是否在 ArrayList 中,而不是它们是否彼此相反
猜你喜欢
  • 2020-08-20
  • 2014-12-29
  • 1970-01-01
  • 2022-11-27
  • 1970-01-01
  • 2021-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多