如何在检查所有其他元素时跳过列表中的元素保持不变

时间:2016-03-19 23:55:34

标签: java

基本上我正在尝试学习如何跳过列表中的元素,同时将它与具有特定索引的不同元素集的克隆列表进行比较

例如:

List<String> a;
List<String> b = a.clone();
b.set(i, "word");

所以基本上如果i中的元素在b中发生了变化,我想检查的是我是否可以跳过检查i处的元素,看看是否所有其他元素都保留在列表a的同一索引中,我试过这个:

public static boolean check(List<String> d, List<String> a,int i)
{
    boolean check = false;
    for (int r = 0; r < d.size(); r++)
    {
        if (r == i) continue;
        check = d.get(r).equals(a.get(i));
    }
    System.out.println(check);
    return check;
}

但每次测试时都会返回false

这是出于学习目的,如果您觉得我没有正确解释自己,请发表评论。

1 个答案:

答案 0 :(得分:0)

我编辑了你的代码,检查两个列表中匹配的元素数量。匹配的数量(由变量 ct 保存)应该比List的大小小1,因为跳过了1个元素。 true false 会相应返回。

public static boolean check(List<String> d, List<String> a,int i) { 
    int ct=0; 
    for (int r = 0; r < d.size(); r++) { 
        if (r==i) 
        continue; 
        if((d.get(i)).equals(a.get(i)))
        ct++;
    }
    if(ct==d.size()-1)
    return true;
    return false;
}

希望它能解决你的问题。