0

动物.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

我改变了 tur.equals 但不起作用。因为程序添加到列表中,所以我想添加到 anV。

4

2 回答 2

4
if(tur == "V")

字符串比较应该使用eqauls()而不是==

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

于 2012-09-03T15:13:02.337 回答
3

==可用于比较原始类型,例如chars 和ints;但不是一个String,这是一个Object。如果你用它来比较Strings,它会比较它们的引用,而不是它们的内容。

因此,要比较Strings,请使用String#equals()

if (tur.equals("V")) {

}

此外,您正在向Collection正在迭代的 a 添加元素。你确定这里没有错别字?

for (animals data : an) {
    an.add(blah blah);
}
于 2012-09-03T15:13:49.327 回答