2016-01-22 47 views
-1

我与之前发布a question的用户之一有类似的情况。这是一款纸牌游戏,我们必须创建一个名为card的新数据类型,其中包含“排名”和“套装”。找到自定义数据类型的大小(或长度)

如何获取卡的arrayList的大小,当我们不能使用size()length,因为它不是一个字符串?

更新:我不能使用size(),因为当我写它,它就会给出警告cannot resolve method 'size()'

`ArrayList<Card> hisCards; 
    hisCards = new ArrayList<Card>();` 

public static int checkColumn(Card cardArray) { 
    int cardSize = cardArray.size(); 
    if (cardSize == 0) { 
     return 1; 
    } 
    return 0; 

}

我只是打算通过函数以后通过。 cardArray将被替换为hishand 也许我只是做错了吗?

+2

你正好这样做,得到的ArrayList大小:.size(),是怎么回事? – Stultuske

+0

你的意思是以字节为单位的大小? –

+0

[Java中是否有任何sizeof-like方法?](http://stackoverflow.com/questions/2370288/is-there-any-sizeof-like-method-in-java) –

回答

2

更新:我不能使用大小(),因为当我写它,它就会给出警告不能解析方法“大小() '

确保您从正确的实例调用size()方法。这是如何从一个ArrayList获得大小的示例:

ArrayList<Card> hisCards = new ArrayList<Card>(); 
int numOfCards = hisCards.size(); //get number of elements from hisCards 

编辑:您的卡对象,而不是一个ArrayList上调用size()


更改方法:

public static int checkColumn(ArrayList<Card> cardArray) 
+0

我已更新我的问题 – MasAdam

+0

@MasAdam如果您的意图是将像hisHand这样的数组列表传递给方法,您可以按照上面的建议对其进行更改。然后你可以通过调用'int cardSize = cardArray.size()'来获得大小。如果将数组传递给该方法,则将调用cardArray.length。 – user3437460

1

size()方法不是String的方法,它是Collection的方法,这意味着new ArrayList<Card>().size()是有效的。

size() -method返回集合中元素的数量。

以您的代码示例,hisCards.size()不应导致编译错误。

您的变量名称cardArray不是array(或ArrayList),它只是一个Card。当然,这没有任何size() - 方法(除非你实际上是由一个。)

+0

但为什么我在使用它时收到警告? – MasAdam

+5

我该如何回答这个问题?什么样的警告? – Tobb

+0

我刚刚发布了更新 – MasAdam