hashtag在java中使用

时间:2013-11-07 01:17:10

标签: hibernate

是否可以在java中使用hashtags?散列标签是否可用于任何目的?

4 个答案:

答案 0 :(得分:1)

for (k = 52; k<deck.length; k--){

这个循环很糟糕。

如果从k = 52开始,你想循环直到k为1(因为不需要用自己交换最后一个元素)。这样,k将不会&lt;而deck.lenght和循环体将永远不会执行。

将其更改为

for (k = deck.length; k >= 1; k--){

然后,当你做这个时:

for (l = 0; l<k; l++){

k将为0,因此该循环将具有相同的问题,因此将其更改为

for (l = 0; l<deck.length; l++){

更进一步,Fisher-Yates shuffle将每个元素与集合中的其余元素交换,所以

int index = shuffle.nextInt(k-1);

会更正确

答案 1 :(得分:0)

你想要的for循环是什么

for(k = deck.length - 1; k >= 0; k--)

你的索引已关闭,它从不进入随机播放算法(我没有检查它的正确性,因此你可能遇到其他问题)

答案 2 :(得分:0)

正如我的评论所述,您可以简化shuffledDeck()方法:

public static void shuffledDeck(String[] deck) {

    List<String> shuffledDeck = new ArrayList(Arrays.asList(deck));
    Collections.shuffle(shuffledDeck);

    for (String card : shuffledDeck){
        System.out.println(card);
    }
}

答案 3 :(得分:0)

你发布的代码中for内的main()循环从两个字符串数组构建了套牌,并在构建它时将其打印出来,但是在构建套牌之后,你实际上并没有将它洗牌。 / p>

在你的初始for循环之后,你必须调用ShuffledDeck(应该被称为shuffleDeck然后循环遍历数组再次打印每张卡。基本上:

for (int i = 0;  i<number.length; i++) {
    // ...building the deck as before...
}

shuffleDeck(deck);

for (int i = 0; i<deck.length; i++) {
    System.out.println(deck[i]);
}