首页 > 解决方案 > arraylist 的输出未正确打印

问题描述

我需要打印我洗牌的牌组,不确定我做错了什么才能获得空值。我是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();
    }

这是我的输出(第一个是打印我的全甲板,第二部分应该是洗牌的甲板)

 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 output from array
nullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnull

标签: javaarrays

解决方案


而不是做

System.out.print(valuesArray);

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

我认为你正在做的是打印出数组的内存地址而不是它的值


推荐阅读