我正在尝试从已填充的牌组中随机获取 5 张牌,并将它们从牌组中删除。 List n 在 Player.java 中工作正常,但当传递回 main 时,它返回已删除的结果。
public class Player {
private Random r = new Random();
int res;
List<Card> n = new ArrayList<>();
public List<Card> Deal(List<Card> deck){
for(int i = 0 ; i < 5 ; i++){
Card c = Draw(deck);
n.add(c);
System.out.println(res + n.get(i).getSuit() + n.get(i).getFigure());
DelCard(deck.get(res));
}
return n;
}
public Card Draw(List<Card> deck){
res = r.nextInt(deck.size());
Card c = deck.get(res);
return c;
}
private Card DelCard(Card c){
c.setFigure("0");
c.setSuit("0");
return c;
}
}
这是我的主要内容:
public static void main(String[] args) {
// TODO code application logic here
Exercise04 e = new Exercise04();
e.run();
}
public void run(){
List<Card> deck = new ArrayList<>();
List<Card> pDeck1 = new ArrayList<>();
deck = popDeck(deck, fig, suit);
Player p1 = new Player();
pDeck1 = p1.Deal(deck);
printDeck(pDeck1);
//printDeck(deck);
}
这是一个示例输出:
27D2
23SJ
51CK
5H6
21S9
00
00
00
00
00
最佳答案
从该行中删除关键静态 静态列表 n = new ArrayList<>(); popDeck 方法应该做什么?
--> 而且删除方法似乎已正确定义。
用它替换 DelCard 方法。
private void DelCard(List<Card> deck)
{
deck.remove(deck.get(res));
}
关于java - 我的 List<> 返回 0 而不是结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40815654/