private static final Map<TeamType, List<Player>> LIST = new ConcurrentHashMap<>();
如何从列表中删除播放器对象? 我现在的代码是:
for (List<Player> team : LIST.values())
{
if (team.contains(ObjectIWantToRemove))
{
team.remove(ObjectIWantToRemove);
return;
}
}
但是我想用单行来改进。
你是想:
LIST.values().forEach(team -> team.remove(ObjectIWantToRemove))
你可以做的一件事是:
for (List<Player> team : LIST.values()) {
if (team.remove(ObjectIWantToRemove))
{
return;
}
}
这将避免在删除元素之前调用contains
。
您可以迭代键集并从值中移除并更新映射。
for (TeamType key : LIST.keySet()) {
List<Player> p = map.get(key);
p.remove(PlayerObjectToRemove);
LIST.put(key, p);
}