我有一个列表,其中只有一个对象。从该对象中,我获取一个值并将该值设置为一个新的不同对象。之后,我将该新对象添加到列表中。现在,我只需要列表中的新对象并删除旧对象。
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);
}
}
这是正确的方法吗?
答案 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);
}
}