java - 我的 List<> 返回 0 而不是结果

标签 java list arraylist

我正在尝试从已填充的牌组中随机获取 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/

相关文章:

java - 如何将创建的ArrayList存储在内存中,这样它就不会在每次应用程序启动时创建?

java - 如何使用带有嵌入式 Jetty 的 Jersey 2.3 在启动时加载 servlet

java - 为什么我的自定义 ImageView 的 onClickListener 未注册?

Java语言Exception实现最佳方案

css - 如何使用 CSS 使列表项保持在一起?

python - 如何根据 Python 中另一个列表的(子列表)索引对列表进行分区

java - 如何对 ejb 2 类进行单元测试

python - 使用 eval 对列表求和

Java getText().toString() 用于命名字符串数组

java - 如何将数据添加到不同的模型类android