簡體   English   中英

arraylist 中的 Output 無法正確打印

[英]Output from arraylist not printing properly

我需要打印我洗牌的牌組,不知道我做錯了什么來得到 null。 我是 java 的新手,請幫助(:

private void shuffle(PlayingCard[] valueArray)
{
    Random rand = new Random();
    int shuffleCount = rand.nextInt(998) + 999;

    for (int i = 0; i < shuffleCount; i++)
    {
        int cardShuffle1 = rand.nextInt(MAXD);
        int cardShuffle2 = rand.nextInt(MAXD);

        PlayingCard[]temp = new PlayingCard[1];
        temp[0] = valueArray[cardShuffle1];
        valueArray[cardShuffle1] = valueArray[cardShuffle2];
        valueArray[cardShuffle2] = temp [0];
    }

private void printDeck(PlayingCard[] valueArray)
    {
        System.out.println("printing from array");

        int j = 0;
        for (PlayingCard valuesArray : valueArray)
        {
            j++;
            System.out.print(valuesArray);
            if (j == MAXC)
            {
                System.out.println();
                j = 0;
            }
        }
        System.out.println();
    }

這是我的 output (第一個是打印我的全甲板,第二部分應該是洗牌的甲板)

 print from arraylist
 S2 S3 S4 S5 S6 S7 S8 S9 ST SJ SQ SK SA
 H2 H3 H4 H5 H6 H7 H8 H9 HT HJ HQ HK HA
 D2 D3 D4 D5 D6 D7 D8 D9 DT DJ DQ DK DA
 C2 C3 C4 C5 C6 C7 C8 C9 CT CJ CQ CK CA

printing from array
nullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnull

而不是做

System.out.print(valuesArray);

System.out.print(valuesArray[valuesArray]);

你正在做的是打印出數組的 memory 地址而不是它的值,我想

提供 PlayingCard.toString(..) 方法實現。

由於您要從數組中打印每個單獨的 PlayingCard object,我猜您在 PlayingCard class 中實現了 toString(..) 方法。

那是什么實現。 我建議仔細檢查你的 toString(..)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM