Java 在if语句中使用.remove是否会删除其中的内容? 公共类堆栈溢出{ ArrayList x=新的ArrayList(); x、 加上(“尼斯”); y=“wew”; 如果(x等于(y)) x、 移除(0); }

Java 在if语句中使用.remove是否会删除其中的内容? 公共类堆栈溢出{ ArrayList x=新的ArrayList(); x、 加上(“尼斯”); y=“wew”; 如果(x等于(y)) x、 移除(0); },java,if-statement,arraylist,Java,If Statement,Arraylist,上面的代码只是一个示例 此代码是否会导致x具有IndexOutofBoundsException,因为内部元素已从if语句中删除?是,在列表上调用remove将删除一个对象,无论在何处调用它。两种类型的删除函数存在于ArrayList中。如果有要从列表中删除的对象的副本,可以将其作为参数传递给remove函数本身。 例如: public class StackOverFlow{ ArrayList x = new ArrayList<String>(); x.add

上面的代码只是一个示例


此代码是否会导致
x
具有
IndexOutofBoundsException
,因为内部元素已从
if
语句中删除?

是,在
列表上调用
remove
将删除一个对象,无论在何处调用它。

两种类型的删除函数存在于
ArrayList
中。如果有要从列表中删除的对象的副本,可以将其作为参数传递给
remove
函数本身。

例如:

public class StackOverFlow{
    ArrayList x = new ArrayList<String>();
    x.add("nice");
    y = "wew";

    if(x.remove.equals(y))
        x.remove(0);
}
我想你的意思是
if(x.remove(0).equals(y))
x.remove(y) // returns a boolean value true when the first occurrence of object y is remove from list x