Java—如何使用另一个设置值的类的构造函数创建数组列表

Java—如何使用另一个设置值的类的构造函数创建数组列表,java,Java,我正在尝试添加一个完整的卡片列表。我正在尝试使用数组列表的cards构造函数添加“cards”,我想输入西装和号码 在“卡片”类中: “甲板”级: Deck(){ ArrayList卡=新的ArrayList(52); 对于(int i=0;i您需要使用Suit.SPADES而不仅仅是SPADES。您必须在卡片前使用新关键字,即 new Card(...) 您可以在枚举中使用嵌套for循环 for (Suit suit : Suit.values()) { for (int i = 1;

我正在尝试添加一个完整的卡片列表。我正在尝试使用数组列表的cards构造函数添加“cards”,我想输入西装和号码

在“卡片”类中:

“甲板”级:

Deck(){
ArrayList卡=新的ArrayList(52);

对于(int i=0;i您需要使用
Suit.SPADES
而不仅仅是
SPADES
。您必须在卡片前使用新关键字,即

new Card(...)
您可以在枚举中使用嵌套for循环

for (Suit suit : Suit.values()) {
  for (int i = 1; i <= 13; i++) { 
    cards.add(new Card(suit, i));
  }
}
for(Suit:Suit.values()){
对于(int i=1;i
  • 使用
    new
    关键字调用构造函数
  • 假设
    SPADES
    位于枚举中,则必须使用
    Suit.SPADES
    访问它,而不仅仅是
    SPADES
  • 您可能会有可见性问题(尽管如果这两个类在同一个包中,您应该会很好),因此您可能希望将其设置为
    公共卡(套装,int-rank)
    公共卡组()
    。这可能不是必需的,但这是一个好主意
  • 要更正您的
    Deck
    课程,请执行以下操作:

    public Deck(){ 
        ArrayList cards = new ArrayList(52);
    
        for (int i=0; i<=13; i++){ 
            cards.add(new Card(Suit.SPADES,i));
        }
    }
    
    public Deck(){
    ArrayList卡=新的ArrayList(52);
    
    for(int i=0;i这里是实际定义的黑桃(as
    int
    )?您是否有
    Enum
    static final int
    变量?@PM77-1我假设它是一个Enum,因为card的构造函数采用
    Suit
    。但是我不能确定。另外,更好的方法不是使用
    raw
    类型,而是使用
    ArrayList cards=ArrayList(52);
    for (Suit suit : Suit.values()) {
      for (int i = 1; i <= 13; i++) { 
        cards.add(new Card(suit, i));
      }
    }
    
    public Deck(){ 
        ArrayList cards = new ArrayList(52);
    
        for (int i=0; i<=13; i++){ 
            cards.add(new Card(Suit.SPADES,i));
        }
    }