无法在Java中比较ArrayList值

无法在Java中比较ArrayList值,java,for-loop,if-statement,arraylist,compare,Java,For Loop,If Statement,Arraylist,Compare,我正在学习Java课程,在一个练习中,我必须创建三个ArrayList,让用户用整数填充前两个ArrayList,然后比较两个ArrayList 不重复的值将添加到第三个ArrayList。我已经声明了ArrayList,使用Scanner允许用户填充ArrayList,这部分工作正常 当我尝试比较两个ArrayList时,问题就出现了。我在这行中得到了所有类型的警报(“if语句是冗余的”、“使用==或!=”比较的整数值”、“二进制运算符的翻转操作数”、“反转if”) 我怀疑我在if语句之后写的

我正在学习Java课程,在一个练习中,我必须创建三个ArrayList,让用户用整数填充前两个ArrayList,然后比较两个ArrayList

不重复的值将添加到第三个ArrayList。我已经声明了ArrayList,使用Scanner允许用户填充ArrayList,这部分工作正常

当我尝试比较两个ArrayList时,问题就出现了。我在这行中得到了所有类型的警报(“if语句是冗余的”、“使用==或!=”比较的整数值”、“二进制运算符的翻转操作数”、“反转if”

我怀疑我在if语句之后写的东西不是很干净,我可以得到一些关于这方面的评论(我不是Java方面的专家),但我不理解IDE显示的警报。代码编译并运行良好,直到命中嵌套循环为止。请帮忙!谢谢

       //Checking for values that dont repeat
        for(int i=0;i<listVector1.size();i++){
            for(int j=0;j<listVector2.size();i++){
                if(listVector1.get(i)==listVector2.get(j)){//Im getting an alert here
                 repeats=true; //this boolean was previously declared
                 } else {
                  repeats=false;
                }
            if(repeats==false){
                int newValue=listVector1.get(i);
                listVector3.add(newValue);
            }
        }

        }
//检查不重复的值

对于(inti=0;i这才是真正的问题

使用==或进行比较的整数值=

=
操作符比较两个对象的引用。但实际上您要做的是比较引用中存储的值。 因此,您需要使用
equals
操作符

或者,您可以显式地将其中一个值强制转换为
int
,并对如下值使用
=

if(listVector1.get(i) == ((int)listVector2.get(j))){
     repeats=true; 
} else {
     repeats=false;
}


为了阅读更多的内容,您需要搜索==和equals运算符之间的差异。首先,第二个For循环中有一个错误。我希望您需要增量j。 第二个是比较,您必须显式地从数组中强制转换值或使用函数equals。 第三,if语句必须在第二个循环之外。因为我希望您只想在第三个数组中添加一次找到的数字

for(int i = 0; i < listVector1.size(); i++) {
    for(int j = 0; j < listVector2.size(); j++) {
        if (listVector1.get(i).equals(listVector2.get(j))) {
            repeats = true;
            break;
        } else {
            repeats = false;
        }
     }
     if(!repeats){
         int newValue=listVector1.get(i);
         listVector3.add(newValue);
     }
 }
for(int i=0;i
如何初始化ArrayList?它是哪种类型的?在第二个for循环中,您使用的是i++而不是j++。对于您指出的第一个错误,我觉得自己像个傻瓜。对于使用“==”而不是equals方法,这实际上是我教授的错误。我对使用“break”表示怀疑,因为它嵌套在if代码块中,可能会导致意外行为,但我会尝试你的建议。非常感谢你花时间。非常感谢你花时间发布此内容。我不知道ArrayList的equals方法,事实上,本课程的教授是建议“==”的人我会试试你的建议。再次谢谢。