在Java中从ArrayList中删除对象
我想从我的ArrayList中删除对象。但它并没有像预期的那样工作。下面是我的代码在Java中从ArrayList中删除对象,java,arraylist,Java,Arraylist,我想从我的ArrayList中删除对象。但它并没有像预期的那样工作。下面是我的代码 public static void validateXML(ArrayList<MyClass> ArrayvalidRequestResponsePairs,boolean result) { MyClass MyclassObject = new MyClass(); if(result == true) { //
public static void validateXML(ArrayList<MyClass> ArrayvalidRequestResponsePairs,boolean result)
{
MyClass MyclassObject = new MyClass();
if(result == true)
{
// code
}
else
{
ArrayvalidRequestResponsePairs.remove(MyclassObject.requestFile);
}
}
但该值并没有被删除。代码有什么问题?您的变量ArrayvalidRequestResponsePairs的类型
ArrayList<MyClass>
从它看来,它根本不像MyClass类型的实例
NB MyclassObject是您刚刚创建的一个实例。因此,该实例肯定不在列表中,更正代码以从列表中删除MyclassObject毫无意义。您试图删除的对象与列表类型不同。更改以下代码可能会解决此问题:
ArrayvalidRequestResponsePairs.remove(MyclassObject);
嗯,我试着猜你要做什么。您可能希望删除与MyclassObject中的requestFile相同的对象。那么你必须这样做:
public static void validateXML(ArrayList<MyClass> ArrayvalidRequestResponsePairs,boolean result)
{
MyClass MyclassObject = new MyClass();
if(result == true)
{
// code
}
else
{
ArrayList<MyClass> itemsToDelete = new ArrayList<MyClass>(ArrayvalidRequestResponsePairs.size());
for (MyClass item : ArrayvalidRequestResponsePairs) {
if (item.requestFile.equals(MyclassObject.requestFile)) {
itemsToDelete.add(item);
}
}
ArrayvalidRequestResponsePairs.removeAll(itemsToDelete);
}
}
但这仍然没有意义,因为您在筛选之前创建了新的MyClass,并且该对象的字段requestFile可能为null。无论如何,这是一种非常奇怪的方法行为。你能解释一下你想做什么吗?几乎所有的事情……这真的毫无意义,对不起。也许试着解释一下你想做什么,并展示一些你发布的代码的上下文。你应该先发布足够的代码,让任何人都知道它有什么问题。ArrayvalidRequestResponsePairs是MyClass类的arrayList,然后将MyClass对象的属性传入。remove methodpost您的整个代码..您的代码可疑有几个原因。。。请尝试阅读更多关于java基础知识和OOP的内容。在我看来,您的代码就像学校的课程一样,尽可能多地查找错误。这从很大程度上来说是有问题的。公众为什么?为什么?没有删除结果吗?什么?!?ArrayList是否使用泛型?ArrayvalidRequestResponsePairs使用java标准变量名约定,输入参数结果的结果名?代码本身很奇怪,我不敢评论它。
public static void validateXML(ArrayList<MyClass> ArrayvalidRequestResponsePairs,boolean result)
{
MyClass MyclassObject = new MyClass();
if(result == true)
{
// code
}
else
{
ArrayList<MyClass> itemsToDelete = new ArrayList<MyClass>(ArrayvalidRequestResponsePairs.size());
for (MyClass item : ArrayvalidRequestResponsePairs) {
if (item.requestFile.equals(MyclassObject.requestFile)) {
itemsToDelete.add(item);
}
}
ArrayvalidRequestResponsePairs.removeAll(itemsToDelete);
}
}