需要帮助我正在做的程序。所以我分配了我的数组,例如:
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”?
答案 0 :(得分: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>
)代表不同大小的集合。
答案 1 :(得分:1)
你可以循环:
int count = 0
for (PlayingCard c : hand) {
if (c != null) count ++
}
//count is now how many cards there are
答案 2 :(得分:0)
您可以实现迭代思考整个数组的方法,以查看索引中是否有元素,或者您可以使用数字保留局部变量,并通过添加和删除来控制它。
如果可能的话,我更喜欢第二个。它为您提供了一个局部变量价格的恒定时间答案,而不是线性时间,这是第一个解决方案
答案 3 :(得分:0)
您正在创建PlayingCard
的数组,一旦初始化将在您的情况下具有固定大小i.s {{a1}} ..
您可以使用5
List
List<PlayingCard> playingCardList=new ArrayList();
playingCardList.add(new PlayingCard());
playingCardList.add(new PlayingCard());
的大小为2