java如何在ArrayList中设置特定项,而不出现OutOfBounds错误?
我正在尝试为游戏编写一个交易插件。我的想法是,一个玩家向另一个玩家发送请求,如果另一个玩家接受,那么双方必须选择一个项目进行交易
我有4个数组列表: 存储请求者、存储被请求者、存储请求者选择的项目和存储被请求者选择的项目。问题是,如果多个玩家同时交易,我不能将该项目添加到列表中,因为它可以与其他人的交易匹配。我试着这样做:
requesterItems.set(requesterIndex, clicked);
其中requesterIndex是另一个列表中请求者的索引,单击的是所选项目
我知道为什么会有错误,但我想不出解决办法。问题是列表是空的,并且该索引中没有元素。如何在不接触列表中其他点的情况下添加元素
# 1 楼答案
如果可能的话,我会避免使用具体的索引,而是使用对象
正如在评论中已经提到的,我建议使用自己的类和HashMap。这里有一些代码类似于我所做的(!未测试!):
因此,有一个HashMap,玩家作为键,他/她的项目作为列表值
代码示例不是故障安全的。我建议添加一些检查项目是否真的在此列表中,以避免错误。比如:
我希望这有助于解决你的问题,如果我误解了你,请告诉我!祝你好运