【发布时间】:2017-06-17 01:41:05
【问题描述】:
我正在尝试写一个小纸牌游戏,结果卡住了
我创建了一个 Deck 类,并在其中创建了一个对象数组列表,每个对象代表一个由字符串套装、字符串名称和 2-14 的 int 值组成的扑克牌中的一张牌。 我为 Game 创建了另一个类,其中包含 2 个额外的数组列表 player1 和 player2,然后将卡片从数组列表牌组“发”给每个玩家。 在继续玩游戏之前,我需要从 player1 和 player2 数组列表中删除所有对。
我一直在尝试通过我的 getValue() 方法对 arraylist 进行排序,然后使用 player1.getValue(i).equals(player1.getValue(i+1) 遍历 arraylist,然后 remove(i) 两次
private void removePlayer1Pairs(ArrayList<Card> player1) {
Collections.sort(player1);
int i = 0;
while(i < player1.size() - 1){
if(player1.getFaceValue(i).equals(player1.getFaceValue(i+1))){
player1.remove(i);
player1.remove(i);
i = Math.max(0, (i - 1));
}
else{
i++;
}
}
}//end removePlayer1Pairs
我收到错误,方法排序不适用于第 2 行的 Arraylist 以及 getValue() 方法在第 5 行未定义。有什么建议可以使这项工作有效吗?我只是在学习arraylists
【问题讨论】:
-
要让
Collections.sort工作,Card需要implement Comparable<Card>。能否请您展示您的Card课程? -
你打电话给
getFaceValue,而不是你在描述中所说的getValue。这是故意的吗? -
使用比较器对对象卡片进行排序。
-
我还有一个甲板课
-
是的,很抱歉这是 getFaceValue 而不是 getValue
标签: java sorting object arraylist