Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 验证两个值是否包含在同一索引的单独ArrayList中_Java_For Loop_Arraylist - Fatal编程技术网

Java 验证两个值是否包含在同一索引的单独ArrayList中

Java 验证两个值是否包含在同一索引的单独ArrayList中,java,for-loop,arraylist,Java,For Loop,Arraylist,我有两个数组列表:phNumbers和pinNumbers。两者都具有相同数量的元素。我试图检查给定的值是否在第一个phNumbers中,如果是,则在phNumbers数组列表的哪个索引处找到该值。然后,我希望检查第二个值是否位于先前标识的索引处的pinNums ArrayList中 这是我的代码,所以目前: for(int i = 0; i < phNumbers.size() && i < pinNums.size(); i++){ index1 = ph

我有两个数组列表:phNumbers和pinNumbers。两者都具有相同数量的元素。我试图检查给定的值是否在第一个phNumbers中,如果是,则在phNumbers数组列表的哪个索引处找到该值。然后,我希望检查第二个值是否位于先前标识的索引处的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(int i=0;i

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

因此,首先,如果您有一个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");
                }
            }
        }
ArrayList phNumbers=new ArrayList();
添加(“aaa”);
PHN编号。添加(“bbb”);
PHN编号。添加(“ccc”);
PHD编号。添加(“ddd”);
ArrayList pinNums=新的ArrayList();
羽片。添加(“ddd”);
羽片。添加(“bbb”);
添加(“ccc”);
羽片。添加(“aaa”);
对于(int i=0;i
若你们想在某一点后中断,那个么你们需要中断循环。
可以吗?或者您还需要什么?

请提供一个完整的示例。什么是
phNumbers
pinums
?什么是
详细信息
?你确定你想做的是
phNumbers.indexOf(i)
?你调试代码了吗?若否,原因为何?如果是,哪里出错了?您的代码和问题不正确…请尝试elabotate@MaxVollmer我在我的问题中解释说,phNumbers和pinNums是ArrayList。“详细信息”只是一个字符串,我将其拆分以获取值。据我所知,indexOf()方法返回值所在的索引。
ArrayList
是原始类型。您是否使用原始
ArrayList
s?如果是,不要。如果没有,你还没有回答我的问题。再次:请用a更新您的问题。我需要确保这些值位于ArrayList中的相同索引。例如:ArrayList1第一个值=Tim,ArrayList2第一个值为45。contains方法只会告诉我这些值是否在ArrayList中,而不会告诉我它们是否相对