Java数组列表问题
javas.javaJava数组列表问题,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
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);
}