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 を比較すると、内容ではなく参照が比較されます。

したがって、s を比較するには、次Stringを使用しますString#equals()

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

}

Collectionまた、繰り返し処理している要素をに追加しています。ここにタイプミスはありませんか?

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