使用另一个类的变量在构造函数中创建一个arraylist?

时间:2017-05-01 18:21:50

标签: java list arraylist

我正在努力制作一个名为Elevens的Solitaire简化版。我成功完成了Card课程,但我在创建Deck课程时遇到了麻烦。目标是创建一个具有独特卡片的牌组。很抱歉,如果这个解释不是最好的,但希望代码示例会有所帮助:

Card类构造函数:

package ElevensLab;

public class Card {
    private String suit;
    private String rank;
    private int pointValue;

public Card(String cardRank, String cardSuit, int cardPointValue) {
    rank=cardRank;
    suit=cardSuit;
    pointValue=cardPointValue;
}

Deck类构造函数:

package ElevensLab;
import java.util.List;
import java.util.ArrayList;

public class Deck {
    private List<Card> cards;
    private int size;
    public Deck(String[] suits, String[] ranks, int[] values){
        ArrayList<Card> cards=new ArrayList<Card>();
        for(String suit: suits){
            for(String rank: ranks){
                for(int value: values){
                    cards.add(suit);
                }
            }
        }
        size=cards.size();
    }

1 个答案:

答案 0 :(得分:1)

好的,这里是:

因此,您正在制作ArrayList Card。要向ArrayList添加项目,它必须是Card类型,对吗?因此,在Deckcards.add(suit)的第一行,您要为String ArrayList类型Card添加Card。我假设这会给你一个编译器错误。相反,我会做的,实际上是在cards.add()调用内部放置package ElevensLab; import java.util.List; import java.util.ArrayList; public class Deck { private List<Card> cards; private int size; public Deck(String[] suits, String[] ranks, int[] values){ ArrayList<Card> cards=new ArrayList<Card>(); for(String suit: suits){ for(String rank: ranks){ for(int value: values){ cards.add(new Card(rank, suit, value)); //This is the line I changed } } } size=cards.size(); } 构造函数。我将告诉您使用您的代码:

Card

此代码向Deck添加了一个新的cv::Mat1f a = cv::Mat(n, n); cv::Mat1f b = cv::Mat(n, n); cv::Mat1f x; //fill a and b somehow x = a+b; ,其中包含所需的值。我希望你觉得这很有帮助,祝你好运!