Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java arraylist的输出未正确打印_Java_Arrays - Fatal编程技术网

Java arraylist的输出未正确打印

Java arraylist的输出未正确打印,java,arrays,Java,Arrays,我需要打印我洗牌的一副牌,不确定我做错了什么才得到空值。 我是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

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

System.out.printvaluesArray; 做

System.out.printvaluesArray[valuesArray];
您要做的是打印出数组的内存地址,而不是它的值,我认为提供播放卡。toString。。方法实现

由于您正在打印阵列中的每个PlayingCard对象,我猜您实现了toString。。PlayingCard类中的方法


这是什么样的实施。我建议再次检查您的toString…

您在哪里设置valueArray?你在哪里调用shuffle和printDeck?那不是ArrayList。。。这是一个错误,我试图复制你的代码。什么是MAXD和MAXC???你的合同是什么?MAXC是13套黑桃红桃直径球杆,maxd是52张玩牌,用于玩牌值。雷:值数组。他每次迭代只打印数组的1个元素,因为它应该是public String to String{return String.format%s%s,getSuit.getStrSuit,getRank.getStrRank;}我想从这个片段中可以了解更多。这些字段包含什么?它们必须返回null。仅出于调试目的,打印一个像ABC这样的随机字符串。如果您尝试以下代码:对于int i=0;i<2;i++{String s=String.format%s%s,null,null;System.out.prints;}它将打印:nullnull
 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