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