从列表中删除元素

时间:2019-03-20 07:38:39

标签: java

我有一个列表,其中只有一个对象。从该对象中,我获取一个值并将该值设置为一个新的不同对象。之后,我将该新对象添加到列表中。现在,我只需要列表中的新对象并删除旧对象。

public void function(List<Activities> listOfActivities)
{
    String name = null;
    for (Activities activities : listOfActivities)
    {
        if (activities instanceOf IndoorGames)
        {
            name = activities.getName();
        }
    }
    Outdoorgames games = new OutdoorGames();
    games.setName(name);

    listOfActivities.add(OutdoorGames);
}

现在我的列表中有两个对象,我想删除旧对象,即IndoorGames。

所以我做到了。

ListIterator<Activities> iterator = listOfActivities.listIterator();
while(iterator.hasNext())
{
    Activities a = iterator.next();
    if (a instanceOf IndoorGames)
    {
        iterator.remove(a);
    }
}

这是正确的方法吗?

2 个答案:

答案 0 :(得分:0)

在这种情况下,使用List的{​​{1}}代替set + add更有意义:

remove

答案 1 :(得分:0)

您可以使用ListIterator#set(E)

for(ListIterator<Activities> it = listOfActivities.listIterator(); it.hasNext();) {
    Activities activities = it.next();
    if(activities instanceof IndoorGames) {
        Outdoorgames games = new OutdoorGames();
        games.setName(activities.getName());
        it.set(games);
    }
}