如何查看Array中已满的内存位置

时间:2013-04-22 12:44:13

标签: java arrays

需要帮助我正在做的程序。所以我分配了我的数组,例如:

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”?

4 个答案:

答案 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