2013-04-22 62 views
1

需要關於我正在執行的程序的幫助。所以我分配我的陣列,例如:如何查看陣列中有多少內存位置已滿

hand = new PlayingCard[5]; //5 Cards in a hand 

我設置hand[0]hand[1]的信息,

hand[0] = deck.dealACard(); 
hand[1] = newDeck.dealACard(); 

我的問題是,當我揣摩 卡多少目前在手[]我得到「5」而不是「2」。

numCards = hand.length; 

我現在需要做些什麼來使numCards等於「2」?

+2

使用列表我而不是陣列。 – BobTheBuilder 2013-04-22 12:46:19

+0

...並使用'size()'來查看有多少。 +1 – 2013-04-22 13:32:29

回答

4

那麼你可以很容易地使用:

public static int countNonNullElements(Object[] array) { 
    int count = 0; 
    for (int i = 0; i < array.length; i++) { 
     if (array[i] != null) { 
      count++; 
     } 
    } 
    return count; 
} 

然而,通常這是一個更好的主意,用一個List<E>代替(例如ArrayList<E>)來表示有不同大小的集合。

+0

是countNonNullElements方法嗎?我需要將numCards設置爲以某種方式表示手數組中的卡片數量。 – LClarke27 2013-04-22 23:03:01

+0

@ LClarke27:是的,這是一種方法。你會調用該方法,將參考傳遞給你的數組。你有沒有學過關於調用方法? – 2013-04-23 05:56:01

1

您可以遍歷:

int count = 0 
for (PlayingCard c : hand) { 
    if (c != null) count ++ 
} 
//count is now how many cards there are 
0

您可以在迭代認爲整個陣列或者implementa方法,看看是否有索引的元素,或者你可以保持一個局部變量的數量,和你通過添加和刪除來控制它。

如果完全有可能,我更喜歡第二個。它可以讓你在固定的時間爲1個局部變量的價格一個答案,而不是線性時間的推移,將是第一個解決方案

0

你正在創建一個陣列的PlayingCard曾經intialized將有固定的大小,即5在你的情況..

您可以使用List

List<PlayingCard> playingCardList=new ArrayList(); 
playingCardList.add(new PlayingCard()); 
playingCardList.add(new PlayingCard()); 

playingCardList大小是2

相關問題