gpt4 book ai didi

java - 子列表出错

转载 作者:搜寻专家 更新时间:2023-11-01 01:18:26 27 4
gpt4 key购买 nike

我正在制作一款 4 人团队游戏,并被要求使用子列表。以下是列表:

/**
* The list of players in this team.
*/
private final static List<Player> players = new LinkedList<Player>();

/**
* A list of players in the waiting room.
*/
private final static List<Player> waitingPlayers = new LinkedList<Player>();

我收到这个错误:

java.util.ConcurrentModificationException
[11/25/11 3:36 PM]: at java.util.SubList.checkForComodification(Unknown Sour
ce)
[11/25/11 3:36 PM]: at java.util.SubList.listIterator(Unknown Source)
[11/25/11 3:36 PM]: at java.util.AbstractList.listIterator(Unknown Source)
[11/25/11 3:36 PM]: at java.util.SubList.iterator(Unknown Source)
[11/25/11 3:36 PM]: at java.util.AbstractCollection.contains(Unknown Source)

[11/25/11 3:36 PM]: at java.util.AbstractCollection.removeAll(Unknown Source)

此处列出代码。

public static void enterGame(final Client c) {      
if(waitingPlayers.size() < 4) {
c.sendMessage("Waiting for 4 players");
return; // not enough players
}
// Picks 4 ppl from the list
System.out.println("Starting new game");
Collections.shuffle(waitingPlayers);
System.out.println("Picking random players");
final List<Player> picked = waitingPlayers.subList(0, 4);
players.addAll(picked);
waitingPlayers.removeAll(picked);
if(players.contains(c)) {
c.sendMessage("Your on a team!");
}
}

最佳答案

当基础原始列表发生变化时,subList 将失效。复制它,例如使用

List<Player> picked = new ArrayList<Player>(waitingPlayers.subList(0,4));
waitingPlayers.removeAll(picked);

关于java - 子列表出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8275169/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com