在Java中删除ArrayList中的对象

时间:2014-12-09 19:58:22

标签: java arraylist

如果我的ArrayList有两个相同的对象,我在remove中使用了ArrayList,哪一个会被移除?

例如:

People p=new people();
ArrayList<People> peoples = new ArrayList<>();

peoples.add(p);
peoples.add(p);
peoples.remove(p);

3 个答案:

答案 0 :(得分:2)

它将删除第一个。

请注意,它比这稍微复杂一点。在您的示例中,您已添加两次相同的实例p。但是,如果您添加p然后q,并且他们在p.equals(q)的意义上相等,那么尝试删除q将会删除p相反(因为它来到它之前,并且等于它)。

要删除最后一个,您需要

peoples.remove(peoples.lastIndexOf(p));

答案 1 :(得分:0)

如果您阅读Oracle documentation,则说:

Removes the first occurrence of the specified element from this list, if it is present.

要删除最后一个:

peoples.remove(peoples.lastIndexOf(p));

答案 2 :(得分:0)

如果你避免重复,那么你可以使用这种方法。

People p=new people();
ArrayList<People> peoples = new ArrayList<>();


if(!peoples.contains(p)){
peoples.add(p);
}

if(!peoples.contains(p)){
peoples.add(p);
}

在添加到列表之前,您可以使用.contains进行检查。 如果您没有在代码中创建此列表,我的意思是从其他api或您无法控制的方法中获取。然后在方法中创建new,并通过选中contains

将每个元素从第一个列表移动到列表中