Java数组列表问题

Java数组列表问题,java,arraylist,Java,Arraylist,javas.java public class animals{ static ArrayList<animals> anV = new ArrayList<animals>(); static ArrayList<animals> anF = new ArrayList<animals>(); ...... .. . } public void metod1(String tur){ Array

javas.java

public class animals{
    static ArrayList<animals> anV  = new ArrayList<animals>();
    static ArrayList<animals> anF = new ArrayList<animals>();
    ......
    ..
    .
}

public void metod1(String tur){
    ArrayList<animals> an;

    if(tur.equals("V")) an = anV;
    else           an = anF;

    for (animals data : an) {
        an.add(blah blah);
        ..........
    }
}
正常添加工作,但在tur==V时不添加,然后列表到>anV。添加到列表中,而不是anV

我换工作,但不工作。因为程序添加到列表中,所以我想添加到anV

if(tur == "V")
字符串比较应使用eqauls而不是==

除非要比较的字符串是字符串文字。

==可用于比较基本类型,例如chars和int;但不是字符串,它是一个对象。如果您使用它来比较字符串,它将比较它们的引用,而不是它们的内容

因此,要比较字符串,请使用:

此外,您正在向正在迭代的集合添加元素。你确定这里没有打字错误吗

for (animals data : an) {
    an.add(blah blah);
}

我想你会得到一个ConcurrentModificationException。如果是这种情况,那是因为您在正在修改的集合上有一个for循环。tur==V应该是V.equalsturchange tur==V到tur.equalsV,它将根据您的需要工作!在Java中,应该使用equals方法比较对象,而不是使用==您肯定是指equals:@E_net4:是的,我知道。我打了别的东西吗?感谢您的编辑。它仍然显示eqauls,OP声明了此值的行为更改,所以这不是问题所在。@user1429570:很抱歉,我不明白您在说什么。@PeterLawrey:我想正常工作意味着,它不会抛出任何错误。破译英语有点难。如果tur不是literal,我想tur==V将不会导致true,除非非常罕见的情况。==可以用于所有基元类型之间的比较。最好使用V.equalstur,如果tur是,这将避免NullPointerExceptionnull@Nandkumar:这就是尤达将使用的ehh.iftur==V System.out.printlnV;iftur.equalsV System.out.printlnV;所有的工作,但我想说,当我调用method1V程序add to list an时,我想添加到listanV@user1429570:但您到底想添加什么?
for (animals data : an) {
    an.add(blah blah);
}